if(status.equals(null))
{
status="Pass";
}
从上面抛出的代码中NullPointerException
,请给出比较值的解决方案null
。
if(status.equals(null))
{
status="Pass";
}
从上面抛出的代码中NullPointerException
,请给出比较值的解决方案null
。
看起来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
您可能会发现此链接很有用。
相关主题:
在 Java"null"
中是一个字符串。您想比较对 null 的引用。请执行下列操作:
if(status == null){
// code here
}
请记住,String 是 Java 中的类。因此,每当您使用未初始化的对象(这是一个空对象)调用方法时,它都会抛出NullPointerException
. 在您的情况下,您可能String status
没有初始化所以您需要确保.
顺便说一句,您应该null
在不使用equals()
方法的情况下进行检查,因为您正在检查空对象的方法以获取其空值是没有意义的。
你必须这样做
if(status == null)
//Do something
仅当您想比较字符串时才使用 equals 方法,并且在您确定您的字符串已初始化的阶段,假设String status = "";
是一个已初始化的字符串,现在它不为空。
只是为了在使用时的信息
,equals()
尝试使用它"anyValue".equals(status)
而不是status.equals("anyValue")
因为使用like "anyValue".equals(status)
,它会在空字符串的情况下更安全,你不会得到NullPointerException
if(status.equals("null")) //Just checking if string content/value is same
{
status="Pass";
}
通过这种方式,您只是在检查状态变量的值(内容)是否为“null”字符串。如果要进行空检查,则需要执行以下操作
if(null == status)
{
status="Pass";
}
您不应该将其设为“null”!在您的情况下,编译器将其视为字符串。
if(stringVariable!=null)
{
//ur Code
}
(或者)
if(stringVariable.equals(null))
{
//Ur code
}
如果您使用字符串数组,您可以按以下方式进行操作
if(stringArray.isEmpty())//checks length of String array
{
//ur code
}
您不能将 .equals 与 null 一起使用。利用 :
if(status == null) {
//Do something
}
这正是 HashMap 不能存储多个空值的原因。因为它总是将键与其他值进行比较,如果第二次输入空值,它会抛出 NPE。
您收到此错误,因为status
is null
。