私は(明らかにnullではない)私のオブジェクトの1つを印刷するとき、私はいくつかの奇妙なことに実行してきました。私item
オブジェクトがnull
ある場合条件演算子()
text.append("\n [ITEM ID]: " + (item == null ? (otherItem == null ? 0 : otherItem .getItems().get(i).getId()) : item .getItems().get(i).getId()));
ヌルポインタ例外はありません。私はこの行を使用する場合は
。もちろん、これは例外的な結果でなければなりません。私は()
マークなしでそれを使用する場合でも:
text.append("\n [ITEM ID]: " + item == null ? (otherItem == null ? 0 : otherItem .getItems().get(i).getId()) : item .getItems().get(i).getId())
私は条件演算子がオペレータの他の部分を実行していないと思ったが、私はNullPointerExceptionが得ました。
このケースで()
マークを使用することが不可欠である理由私は、誰かが私にそれを説明する場合いただければ幸いです。あなたはそれが仕事をしたい場合は、それらを配置する必要がありますので
演算子の優先順位の場合を参照してください? –
ヒント: ' "\ nは[ITEM ID]:" + item'になり...? –