Como las respuestas anteriores han dicho, Boolean.TRUE
devuelve el envoltorio objeto del valor booleano true
, por lo que para los contextos en los que necesitamos para tratar de booleanos como objetos (por ejemplo, tener un ArrayList
de booleanos), podríamos usar Boolean.TRUE
o Boolean.FALSE
cuanto a por qué:
boolean boolVar = Boolean.TRUE;
es válido es por Autoboxing and Unboxing.
En pocas palabras, el compilador de Java, cuando se ve que el tratamiento de una primitiva como un objeto, como por ejemplo
List<Boolean> listOfBoolean = new ArrayList<Boolean>();
boolean someBool = true;
listOfBoolean.add(someBool);
se ajuste automáticamente, o autobox de que
List<Boolean> listOfBoolean = new ArrayList<Boolean>();
boolean someBool = true;
listOfBoolean.add(Boolean.valueOf(someBool));
Y si lo ve tratando un objeto contenedor, como Boolean.TRUE
, como primitivo, como:
boolean boolVar = Boolean.TRUE;
lo convertirá abajo en una primitiva, o unbox él, como si lo hicimos:
boolean boolVar = Boolean.TRUE.booleanValue();
Había una vez, que tendría que hacerlo a mano, pero ahora, para una mejor o para peor, esto es principalmente cuidado por ti.
Y si se está preguntando por qué tiene Boolean.TRUE
en absoluto, es porque no hay necesidad de tener flotando alrededor de muchos objetos booleanos para true
. Desde un booleano sólo puede ser uno de dos valores, es más sencillo sólo para tenerlos como constantes en lugar de, por cada vez que alguien necesita en caja hasta true
:
Boolean trueBool = new Boolean(true);
http://stackoverflow.com/questions/4531767/what-is-the-difference-between-the-boolean-object-and- the-boolean-data-type-in-ja –
El enlace no responde por qué 'boolean boolVar = Boolean.TRUE;' es una declaración válida y significativa. Digo significativo porque hace lo que parece :) – user183037
Esto se debe a que el enlace abordaba la pregunta que usted hizo antes de la edición. –