【发布时间】:2019-04-16 09:31:54
【问题描述】:
我遇到了 NullPointerException 的问题。
我在调试,元素不为空,我在第一个 IF 中有问题,我看不出问题是什么。我认为当元素的状态为 null 时会发生这种情况,但我尝试修复它但它不起作用
// 更新:问题是当我检查状态时
for (Items item : master.getItems()) {
try {
if (item.getCompany_status().equals("active") || item.getCompany_status().equals("open")) {
if (item.getAddress_snippet() == null) {
cont2++;
Company c = new Company(item.getTitle(), "");
arrayCompany.add(c);
}else {
cont2++;
Company c = new Company(item.getTitle(), item.getAddress_snippet());
arrayCompany.add(c);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
【问题讨论】:
-
item.getAddress_snippet().equals(null)几乎肯定是错误的。使用==与null进行比较 -
如果
item.getAddress_snippet().equals(null)中的getAddress_snippet()返回null,调用.equals() 将不起作用,因为null 不是具有方法的对象。你需要写item.getAddress_snippet() == null -
这是一个 NPE,所以你错过了实际变量为空。通过minimal reproducible example 或至少是堆栈跟踪,我们可以确认您错过了什么。请edit您的问题与信息。仅供参考,您可以从
Object.equals阅读“对于任何非空引用值 x,x.equals(null) 应返回 false。”
标签: java json nullpointerexception