Java boolean
permite que os valores de true
e false
enquanto booleana permite true
, false
e null
. Comecei a converter meus boolean
s em Boolean
s. Isso pode causar falhas em testes como
Boolean set = null;
...
if (set) ...
enquanto o teste
if (set != null && set) ...
parece artificial e propenso a erros.
Quando, se for o caso, é útil usar Boolean
s com valores nulos? Se nunca, então quais são as principais vantagens do objeto empacotado?
ATUALIZAÇÃO: Houve tantas respostas valiosas que resumi algumas delas em minha própria resposta. Eu sou, na melhor das hipóteses, um intermediário em Java, então tentei mostrar as coisas que acho úteis. Observe que a pergunta está "formulada incorretamente" (o booleano não pode "ter um valor nulo"), mas eu a deixei no caso de outras pessoas terem o mesmo equívoco.
null
se ele realmente for usado como um terceiro estado.
Boolean
é um objeto, enquanto a boolean
é um "escalar". Se uma Boolean
referência for definida como nula, isso significa que o Boolean
objeto correspondente não existe. Você não pode colocar nada dentro de algo que não existe.
Boolean
variável comonull
help.