我有以下代码。它工作正常。没有例外等。我正在循环使用标准查询检索的JPA实体对象列表(因此列表中没有任何null
对象)。Mysterious NullPointerException
for (PeriodicalTable periodical : resultsP){
stringFor.add(periodical.getReference());
site = em.find(SiteTable.class, periodical.getSiteID());
if (site != null && site.getPostcode() != null && !site.getPostcode().equals("")){
tempString = site.getPostcode().replaceAll("\\s+", " ");
periodical.setPostcode(tempString.trim());
}
}
现在,我已经在if
声明中,这样,如果在列表中绕环对象具有的0
一个contractManagerID
一行仅触发。标记如下;
for (PeriodicalTable periodical : resultsP){
if(periodical.getContractManagerID()==0) //<---- HERE!!!!
{
stringFor.add(periodical.getReference());
}
site = em.find(SiteTable.class, periodical.getSiteID());
if (site != null && site.getPostcode() != null && !site.getPostcode().equals("")){
tempString = site.getPostcode().replaceAll("\\s+", " ");
periodical.setPostcode(tempString.trim());
}
}
一些调试后,我已经分离出的异常,因为从if语句本身来(标有“HERE”),但我不知道怎么说都可以。我们知道列表中没有null
对象,因为否则即使没有if语句也不行,但没有它就可以正常工作。我完全失去了。
getContractManagerID()返回什么? –
你确定'periodical.getContractManagerID()'本身不是null吗? – Bathsheba
'getContractManagerID()'返回一个整数。数据库中没有空值,但即使if语句不满足,它肯定会继续? –