if(status.equals(null))
{
status="Pass";
}
从上面的代码中抛出NullPointerException
,请提供将值与null
进行比较的解决方案。
答案 0 :(得分:6)
看起来status
本身就是null
。所以当你这样做时:
status.equals("null")
你实际上在做:
null.equals("null")
导致NPE。你应该这样做:
if(status == null) //Now you're checking if the reference is null
//So you'll never dereference a null pointer
您可能会发现this link有用。
相关主题:
What is null in Java?
Java null check why use == instead of .equals()
答案 1 :(得分:2)
在Java "null"
中是一个字符串。您想要将引用与null进行比较。执行以下操作:
if(status == null){
// code here
}
答案 2 :(得分:2)
请记住,String是Java中的类。每当你使用单元化对象(这是一个空对象)调用一个方法时,它就会抛出NullPointerException
。在你的情况下,有可能你的{{} 1}}未初始化所以你需要确定它
顺便说一下,你应该在不使用String status
方法的情况下检查null
,因为检查null对象的null值是没有意义的。
你必须这样做
equals()
当你想要比较一个字符串时,只使用equals方法,并且在你安静的阶段确保你的String被初始化。让我们说if(status == null)
//Do something
是一个初始化字符串,现在它不是null 。仅供参考使用String status = "";
时,尝试使用equals()
代替"anyValue".equals(status)
,因为使用like { {1}},如果是空字符串,它会更安全,你不会得到status.equals("anyValue")
答案 3 :(得分:0)
if(status.equals("null")) //Just checking if string content/value is same
{
status="Pass";
}
通过这个你只是检查状态变量的值(内容)是否为“null”字符串。如果您想进行空检查,则需要执行以下操作
if(null == status)
{
status="Pass";
}
答案 4 :(得分:0)
您不能将其设为null为“null”!在你的情况下编译器将其视为字符串。
if(stringVariable!=null)
{
//ur Code
}
(OR)
if(stringVariable.equals(null))
{
//Ur code
}
如果你使用字符串数组,你可以按照以下方式进行操作
if(stringArray.isEmpty())//checks length of String array
{
//ur code
}
答案 5 :(得分:0)
您不能将.equals与null一起使用。使用:
if(status == null) {
//Do something
}
这正是HashMap无法存储多个空值的原因。因为它总是将密钥与其他值进行比较,如果第二次输入null,则抛出NPE。
答案 6 :(得分:0)
由于status
为null
,您收到此错误。