我有下面的代碼片段,是造成我煩,其中currentRate和secondCurrentRate是雙對象,正確定義:雙= NULL導致一個NullPointerException
(currentRate != null && secondCurrentRate != null) ? currentRate * secondCurrentRate : null;
這應該檢查每個每個雙人間空並且相應地賦值null。但是,如果secondCurrentRate爲null,則會導致NullPointerException。 我已經改變了段將:
(currentRate == null | secondCurrentRate == null) ? null : currentRate * secondCurrentRate;
而這按預期工作。我的問題是爲什麼會發生這種情況?我可以理解,如果我在對象上調用某種方法,但是我的理解是在空對象上調用方法時引發了NullPointerExceptions。有一個空對象,但沒有方法調用。
任何人都可以提供任何見解嗎?這是運行在Java 5中。
在你的第二個片段中,它是「||」或「|」? – 2010-08-23 13:11:24
@ Thierry-Dimitri Roy在這種情況下是一樣的。 – 2010-08-23 13:12:54
請提供一個簡短但完整的程序來說明問題。 – 2010-08-23 13:13:02