Java boolean
позволяет значения true
и в false
то время как Boolean позволяет true
, false
и null
. Я начал конвертировать мои boolean
s в Boolean
s. Это может вызвать сбои в таких тестах, как
Boolean set = null;
...
if (set) ...
пока тест
if (set != null && set) ...
кажется надуманным и подверженным ошибкам.
Когда, если вообще, полезно ли использовать Boolean
s с нулевыми значениями? Если никогда, то каковы основные преимущества обернутого объекта?
ОБНОВЛЕНИЕ: было так много ценных ответов, что я суммировал некоторые из них в своем собственном ответе. Я в лучшем случае являюсь промежуточным звеном в Java, поэтому я попытался показать то, что мне показалось полезным. Обратите внимание, что вопрос «неправильно сформулирован» (логическое значение не может иметь «нулевое значение»), но я оставил его на тот случай, если у других такое же заблуждение
null
если он действительно используется в качестве третьего состояния.
Boolean
- это объект, а А boolean
- это «скаляр». Если Boolean
ссылка имеет значение null, это означает, что соответствующий Boolean
объект не существует. Вы не можете поместить что-то внутри чего-то, что не существует.
Boolean
переменной дляnull
подсказок.