显示java.lang.NullPointerException

时间:2010-06-01 14:11:39

标签: java exception null

当一个值为null并且它不为null时,我会使用一个值。 这个值为null的时间我得到了java.lang.NullPointerException

我怎么能处理这个问题才能解除这个例外。 当值为null且不是时,我需要条件。

感谢您的帮助。

5 个答案:

答案 0 :(得分:7)

当您尝试使用NullPointerException变量调用方法时,会得到null。简单的例子:

String s = null;
int len = s.length();  // NullPointerException because s is null

所以你应该在调用任何方法之前检查变量是否为null,例如:

int len;
if (s == null) {
    len = 0;
}
else {
    len = s.length();  // safe, s is never null when you get here
}

请注意,NullPointerException通常很容易解决。仔细查看异常的堆栈跟踪,它会准确地告诉您代码的哪一行发生异常。检查该代码行中可能是null的内容,并检查您是否在某个可能null的内容上调用方法。添加一个支票(或以其他方式防止相关的事情null。)

答案 1 :(得分:3)

只需正确检查值null即可。有条件的如

if (value == null)

永远不会引发Null Refe PointerException。只有当您尝试访问任何null参考点时才会获得异常。因此,调用方法或访问对象的其他实例成员是不可能的。

答案 2 :(得分:2)

使用IF检查变量不为null,然后使用ELSE代码块为null。

if (variable != null)
{
    //code when object is not null
}
else
{
    //code when object is null
}

当您尝试使用空值

时,空指针只是throwh

e.g

 variable.method();

但是你应该总是避免出现空指针的情况

答案 3 :(得分:1)

正如其他海报所述,如果你不希望s引用在这里为null,那么修复导致引用在第一个地方为null的错误。但是,如果引用可以为null,则还可以使用三元运算符(Java 5 on)执行以下操作

int len = (s == null) ? 0 : s.length;

注意:括号是可选的,但我认为它更具可读性。

答案 4 :(得分:-1)

真的很混淆问题但是:

boolean isNull = true; if(value!= null){isNull = false;}