Я столкнулся с какой-то странной вещью, когда хочу напечатать один из своих объектов (который, очевидно, не равен нулю).
Если я использую эту строку:
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.
Я быБуду признателен, если кто-нибудь объяснит мне, почему в этом случае важно использовать знаки ()
.