metodo example entre diferencia declarar convert comparar java boolean

example - ¿Cuál es la diferencia entre Boolean.TRUE y true en Java?



metodo boolean java (7)

PD: Entiendo la diferencia entre "verdadero" y verdadero.

Edit: También entiendo que Boolean.TRUE es un envoltorio para el verdadero primitivo, entonces mi pregunta es: ¿por qué el booleano primitivo acepta Boolean.TRUE como un valor? Por ejemplo,

boolean boolVar = Boolean.TRUE;

Parece ser una afirmación válida.


Boolean.TRUE es una referencia a un objeto de la clase Boolean, mientras que true es solo un valor del tipo booleano primitivo. Las clases como Boolean a menudo se denominan "clases de envoltura", y se usan cuando necesita un objeto en lugar de un tipo primitivo (por ejemplo, si lo está almacenando en una estructura de datos).


Como indicaron las respuestas anteriores, Boolean.TRUE devuelve el objeto envoltorio del valor booleano true , por lo que para los contextos en los que necesitamos tratar los objetos similares a los booleanos (por ejemplo, tener una ArrayList de booleanos), podríamos usar Boolean.TRUE o Boolean.FALSE

En cuanto a por qué:

boolean boolVar = Boolean.TRUE;

Es válido es debido a Autoboxing y Unboxing .

En resumen, el compilador de Java, cuando ve que trata a un primitivo como un objeto, como

List<Boolean> listOfBoolean = new ArrayList<Boolean>(); boolean someBool = true; listOfBoolean.add(someBool);

automáticamente lo envolverá, o lo hará autobox

List<Boolean> listOfBoolean = new ArrayList<Boolean>(); boolean someBool = true; listOfBoolean.add(Boolean.valueOf(someBool));

Y si te ve tratando un objeto envoltorio, como Boolean.TRUE , como primitivo, como:

boolean boolVar = Boolean.TRUE;

lo convertirá en primitivo, o lo desempaquetará , como si lo hiciéramos :

boolean boolVar = Boolean.TRUE.booleanValue();

Érase una vez, tendría que hacer esto a mano, pero ahora, para bien o para mal, esto se encarga principalmente de usted.

Y si te estás preguntando por qué tener Boolean.TRUE en absoluto, es porque no hay necesidad de tener muchos objetos booleanos flotando alrededor de true . Dado que un booleano solo puede ser uno de dos valores, es más simple tenerlos como constantes en lugar de, porque cada vez que alguien necesita un true en caja:

Boolean trueBool = new Boolean(true);


La razón

boolean boolVar = Boolean.TRUE;

funciona debido al autounboxing , una característica de Java 5 que permite que un objeto envoltorio se convierta a su equivalente primitivo automáticamente cuando sea necesario. Lo contrario, el autoboxing , también es posible:

Boolean boolVar = true;


Los tipos primitivos, (ei boolean ), son muy preferidos sobre las clases (ei Boolean ) por varias razones. Vea la discusión aquí. https://softwareengineering.stackexchange.com/questions/203970/when-to-use-primitive-vs-class-in-java . El tipo primitivo hace que el código sea más legible, evita errores de puntero, como if(a==b) vs if(a.equals(b)) , aumenta el rendimiento y sigue la conversión.

Hay un caso en el que Boolean o Integer funcionan mejor que boolean e int . Esto es si tiene una situación en la que desea permitir el valor null como un valor null . Esto da como resultado una serie de comprobaciones nulas, pero evita que la información false deslice cuando


También puede obtener una explicación en el enlace de Wikipedia a continuación.

Todas las clases primitivas de envoltorio en Java son inmutables. J2SE 5.0 introdujo el autoboxing de tipos primitivos en su objeto envoltorio, y el desempaquetado automático de los objetos envoltorios en su valor primitivo, la conversión implícita entre los objetos envoltorios y los valores primitivos.

Más en http://en.wikipedia.org/wiki/Primitive_wrapper_class


true es del tipo boolean primitivo, mientras que Boolean.TRUE es un objeto Boolean que ajusta el valor true .


Boolean.TRUE es un objeto contenedor y singleton. true es una constante literal. A continuación se muestran 2 situaciones en las que uso envoltorios sobre primitivos

  1. Quiero guardarlos en colecciones
  2. Me gustaría tener una noción de nulo . El booleano primitivo solo puede representar dos estados.