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