我正在构建一个应用程序,它使用来自每天更改的服务器的json数据。 昨天它运作得很好。但是,今天我收到以下错误:
java.lang.NullPointerException:尝试在空对象引用上调用虚方法'boolean java.lang.String.equals(java.lang.Object)'
在这行代码中:
{{1}}
对我来说,似乎if语句应该避免nullpointer异常......我是否会错过什么?
答案 0 :(得分:0)
endDate
变量为null,您无法在其上调用方法。这就是NullPointerException
。
要避免异常,只需验证变量是否为空,因为第一次检查是否if
语句:
if(endDate != null && !endDate.equals("")) {
dates.append(" t/m ").append(endDate);
}
答案 1 :(得分:0)
这意味着您的对象endDate
为空。
在使用之前,您应该检查是否已在某处初始化它。
还要在if语句之前添加if语句,
if(endDate != null){
if(!endDate.equals("") && !endDate.equals("null")) {
dates.append(" t/m ").append(endDate);
}
}
答案 2 :(得分:0)
乍一看,看起来你需要像这样检查endDate变量本身。无法在null对象上调用方法,因为基本上该方法在没有实例的情况下不存在。
if(endDate != null){
if(!endDate.equals("") && !endDate.equals(null) && !endDate.equals("null")) {
dates.append(" t/m ").append(endDate);
}
}
答案 3 :(得分:0)
NullPointerException
表示您的endDate
变量持有对null
的引用。使用.equals()
将无法使用nul,因为您将在不存在的(null)对象上调用方法。
您可以使用assert语句来检查它(请参阅https://en.m.wikibooks.org/wiki/Java_Programming/Keywords/assert)
像这样:
assert (endDate!=null);
或者,您可以使用if(endDate!=null);
但是,如果你真的想要解决问题,你应该用try
语句和catch
任何NPE包装块。