2010-10-25 75 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

相關問題