我目前在if语句中有很长的OR条件列表。但是,其中一些可能会或可能不会被初始化。
是否可以指示java忽略空指针异常并继续评估if语句中的其余条件而不是跳转到catch?
我需要在对象列表上调用一个方法来检查某个值,但是某些对象可能没有被初始化。
由于
答案 0 :(得分:1)
是的,通过检查变量的值
if(value != null) {
// execute code here
}
您可以捕获异常,并继续执行代码的其他线程。但是这个if块只是简单地执行代码,并且不会引发NullPointerException。
但请记住,代码只会在值不为null时执行。如果值为null,则代码块将被跳过。
答案 1 :(得分:1)
据我所知,没有。您可能应该考虑Null Object pattern,因此没有任何反应,但您可以继续执行。
一个例子:
Object onull = new NullObject();
Object oreal = new RealObject();
if(onull.contains(xy) || oreal.contains(xy))
....
// the onull.contains() will always return true
// only the oreal instance will actually perform the contains check
答案 2 :(得分:1)
你的情况应该是这样的:
if((a != null && a == 1) || (b != null && b == 2))
这只是一个例子,但是如果变量有可能为null,你应该在测试前检查null ...