當我想打印一個對象(顯然不爲空)時,我遇到了一些奇怪的事情。有和沒有條件運算符()
如果我用這條線:
text.append("\n [ITEM ID]: " + (item == null ? (otherItem == null ? 0 : otherItem .getItems().get(i).getId()) : item .getItems().get(i).getId()));
沒有空指針異常,如果我item
對象null
。當然這應該是例外的結果。但是,如果使用它,而不()
馬克:
text.append("\n [ITEM ID]: " + item == null ? (otherItem == null ? 0 : otherItem .getItems().get(i).getId()) : item .getItems().get(i).getId())
我認爲有條件的經營者不執行操作的其他部分,但我得到一個NullPointerException。
如果有人向我解釋,我將不勝感激,爲什麼在這種情況下使用()
標記至關重要。
運算符優先級的一個例子? – 2012-02-17 15:49:31
提示:'「\ n [ITEM ID]:」+ item'成爲...? – 2012-02-17 15:50:00