1)if(null != parentObj.childObj)
在嵌套的java对象中检查null是否可以避免npe?
2)if(parentObj.childObj != null)
你认为 “1” 将避免在情况下,潜在的空指针异常,其中 'parentObj' 为空,而相比之下, “2”?
1)if(null != parentObj.childObj)
在嵌套的java对象中检查null是否可以避免npe?
2)if(parentObj.childObj != null)
你认为 “1” 将避免在情况下,潜在的空指针异常,其中 'parentObj' 为空,而相比之下, “2”?
号
如果parentObj是空值,则任何试图调用一个方法或引用一个字段将导致NullPointerExcepton。 !=总是评估双方。
只要检查parentObj是否为空,并且适当地处理它。
为什么不只是if(parentObj != null && parentObj.childObj != null)
?
如果parentObj为null,则引用parentObj上的任何方法/字段将导致NPE。换句话说,您需要if (parentObj != null && parentObj.childObj != null)
来避免NPE。 Groovy使用safe navigation operator减少了这种(非常常见的)冗长类型,它可以让你编写if (parentObj?.childObj)
。
在某一点上,安全导航操作符或类似的东西可能已经通过Coin项目进入Java 7。但它并没有削减;请参阅http://blogs.sun.com/darcy/entry/project_coin_final_five – 2010-10-26 00:16:58
这就是OP所要求的。他正在寻求避免支票的罗嗦。 – 2010-10-25 23:23:02
@Tony Ennis。 1)那不是我读这个问题的方式。 2)无论如何,答案是他不能,而@无赖的回答给了他最好的选择。 – 2010-10-26 00:12:38