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
якщо він справді використовується як 3-й стан.
Boolean
- це об'єкт, а a boolean
- "скаляр". Якщо Boolean
посилання встановлено на нуль, це означає, що відповідний Boolean
об'єкт не існує. Ви не можете розмістити всередині чогось, що не існує.
Boolean
змінної доnull
довідки.