在将类嵌入为其他类的属性的常见情形中,检查空值的最佳方法是什么?在访问属性属性的属性时,检查空值的正确方法是什么?
为了说明我在说什么,说我想访问this.getObject1().getObject2().someMethod()
其中getObject1()
或getObject2()
可能会返回null
。现在我做了以下内容,它的丑陋,并必须有一个更好的办法:
if (this.getObject1() != null)
if (this.getObject1().getObject2() != null)
if (this.getObject1().getObject2().someMethod())
return whatever;
为了避免NPE,我必须在每一个步骤访问的someMethod之前检查空值()。什么是更好的方法来完成这个?
虽然不是100%相关,但您可能需要考虑阅读空对象模式,因为它可能与您的代码有某些关联。 http://en.wikipedia.org/wiki/Null_Object_pattern#Java – BlackVegetable 2012-07-26 21:15:39
尽量避免这种风格 - 请参阅http://pragprog.com/articles/tell-dont-ask - 虽然我很欣赏那个库或遗留代码可能不会给你太多的选择...... – DNA 2012-07-26 21:40:46
在方法调用前你不需要'this.'。 – 2012-07-26 21:48:59