Java boolean
permite que los valores de true
y false
mientras booleana permite true
, false
y null
. He comenzado a convertir mi boolean
s a Boolean
s. Esto puede causar bloqueos en pruebas como
Boolean set = null;
...
if (set) ...
mientras la prueba
if (set != null && set) ...
Parece artificial y propenso a errores.
¿Cuándo, si alguna vez, es útil usar Boolean
s con valores nulos? Si nunca, ¿cuáles son las principales ventajas del objeto envuelto?
ACTUALIZACIÓN: Ha habido tantas respuestas valiosas que he resumido algunas de ellas en mi propia respuesta. En el mejor de los casos, soy un intermediario en Java, así que he intentado mostrar las cosas que encuentro útiles. Tenga en cuenta que la pregunta está "redactada incorrectamente" (el booleano no puede "tener un valor nulo") pero lo he dejado en caso de que otros tengan el mismo concepto erróneo
null
si realmente se usa como un tercer estado.
Boolean
es un objeto, mientras que a boolean
es un "escalar". Si una Boolean
referencia se establece en nulo, eso significa que el Boolean
objeto correspondiente no existe. No puedes colocar nada dentro de algo que no existe.
Boolean
variables paranull
ayudar.