这个问题在这里已经有答案了:
什么是nullpointerexception,如何修复它(12个答案)
四年前关门了。
我正在构建一个应用程序,它使用每天变化的服务器上的json数据。昨天它工作得很好。然而,今天我得到了以下错误:
java.lang.nullpointerexception:尝试对空对象引用调用虚拟方法“boolean java.lang.string.equals(java.lang.object)”
在此代码行:
if(!endDate.equals("") && !endDate.equals(null) && !endDate.equals("null")) {
dates.append(" t/m ").append(endDate);
}
在我看来,if语句应该避免nullpointer异常。。。我错过什么了吗?
4条答案
按热度按时间yvfmudvl1#
乍一看,似乎需要像这样对enddate变量本身进行null检查。不能对空对象调用方法,因为基本上没有示例的方法是不存在的。
jbose2ul2#
这个
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。sdnqo3pr3#
这个
endDate
变量为null,不能对其调用方法。这就是NullPointerException
.为了避免异常,只需验证变量是否不是null,因为第一个检查
if
声明:gg0vcinb4#
意思是你的目标
endDate
为空。你应该在使用它之前检查一下你是否在某处初始化过它。在if语句之前添加if语句,