Прежде всего, извинения за этот самый основной вопрос.Я довольно новичок в stackoverflow, но я ломаю голову над этим и хотел бы немного просветления.
Хорошо, сегодня на работе код меня и моего коллеги был проверен коллегами, и ему было приказано заменить это ..
Boolean isOpen;
*some processing that involves altering the value of isOpen*
if (!isOpen){
...
}
на это ..
if (Objects.equals(Boolean.FALSE, isOpen)){
...
}
Я понял, что обе реализации верны и дают одинаковый результат.Я также знаю последствия использования Boolean
объекта обертки.
В чем я не вижу разницы между использованием оператора NOT и Objects.equals () в этом контексте.Я знаю, что во время выполнения isOpen
будет распакован.Оба все еще чувствительны к NullPointerException
, так в чем же разница?Это своего рода бьет цель логических операторов.