当一个值为null并且它不为null时,我会使用一个值。
这个值为null的时间我得到了java.lang.NullPointerException
。
我怎么能处理这个问题才能解除这个例外。 当值为null且不是时,我需要条件。
感谢您的帮助。
答案 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
}
当您尝试使用空值
时,空指针只是throwhe.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;}