与java中的空值进行比较时出现NullPointerException

时间:2013-07-25 05:49:08

标签: java exception if-statement null nullpointerexception

if(status.equals(null))
{
  status="Pass";
}

从上面的代码中抛出NullPointerException,请提供将值与null进行比较的解决方案。

7 个答案:

答案 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)

由于statusnull,您收到此错误。