在將類嵌入爲其他類的屬性的常見情形中,檢查空值的最佳方法是什麼?在訪問屬性屬性的屬性時,檢查空值的正確方法是什麼?
爲了說明我在說什麼,說我想訪問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