我们可以在嵌套的java对象中检查null时避免使用npe吗?

时间:2010-10-25 23:06:25

标签: java pointers null object nested

1)if(null != parentObj.childObj)

2)if(parentObj.childObj != null)

在“parentObj”为空的情况下,您是否认为“1”将避免潜在的空指针异常,而不是“2”?

3 个答案:

答案 0 :(得分:5)

没有

如果parentObj为null,则任何调用方法或引用字段的尝试都将导致NullPointerExcepton。 !=总是评估双方。

首先检查parentObj是否为空并正确处理它。

答案 1 :(得分:5)

为什么不只是if(parentObj != null && parentObj.childObj != null)

答案 2 :(得分:1)

如果parentObj为null,则引用parentObj上的任何方法/字段将导致NPE。换句话说,您需要if (parentObj != null && parentObj.childObj != null)来避免NPE。 Groovy使用safe navigation operator减少了这种(非常常见的)详细类型,这样就可以编写if (parentObj?.childObj)