2010-10-25 74 views

回答

5

如果parentObj是空值,则任何试图调用一个方法或引用一个字段将导致NullPointerExcepton。 !=总是评估双方。

只要检查parentObj是否为空,并且适当地处理它。

5

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

+0

这就是OP所要求的。他正在寻求避免支票的罗嗦。 – 2010-10-25 23:23:02

+0

@Tony Ennis。 1)那不是我读这个问题的方式。 2)无论如何,答案是他不能,而@无赖的回答给了他最好的选择。 – 2010-10-26 00:12:38

1

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

+0

在某一点上,安全导航操作符或类似的东西可能已经通过Coin项目进入Java 7。但它并没有削减;请参阅http://blogs.sun.com/darcy/entry/project_coin_final_five – 2010-10-26 00:16:58

相关问题