¿Cuál es la diferencia entre booleano y booleano en Java? [duplicate]

3 minutos de lectura

avatar de usuario
crisis redonda

Me gustaría entender la diferencia entre el Boolean y boolean tipos en Java, específicamente en lo que se refiere a GWT. Sé que los métodos no son compatibles, pero quiero más información si está disponible.

Es bastante simple y lo mismo para GWT y Java:

  • booleano puede ser sí o no
  • Boolean puede ser sí, no o NULL.

Entonces, a menos que necesite NULL (como, por ejemplo, cargar el campo desde la base de datos, y desea que NULL sea diferente a falso), entonces apéguese a boolean.

  • Espero que el booleano se pueda pasar a un método y el booleano se pueda configurar y la persona que llama lo sepa … y viceversa.

    – Brian Reinhold

    29/03/2017 a las 19:45

avatar de usuario
pastelforcerberus

No estoy seguro de si el factor GWT marca la diferencia, pero en general:

booleano es un tipo primitivo de java mientras que booleano es un tipo de objeto/referencia que envuelve un booleano

La conversión entre primitivos y objetos como este se conoce como boxing/unboxing.

Aquí hay más información:

http://javaeye.wordpress.com/2008/06/17/boxing-and-unboxing-conversion/

¿Por qué caja usted pregunta?

http://java.sun.com/j2se/1.5.0/docs/guide/language/autoboxing.html

http://www.javapractices.com/topic/TopicAction.do?Id=197

  • +1 por la mención de box/unbox :-). No poder poner primitivo, como int o booleanen las colecciones son, si lo entiendo bien, la razón principal (si no la única) de los objetos envoltorios como Boolean, Integer y similares…

    – julián

    8 de marzo de 2021 a las 15:23

avatar de usuario
Michael Myers

En Java, un boolean es un literal true o falsetiempo Boolean es un contenedor de objetos para un boolean.

Rara vez hay una razón para usar un Boolean sobre un boolean excepto en los casos en que se requiere una referencia de objeto, como en un List.

Boolean también contiene el método estático parseBoolean(String s)que quizás ya conozcas.

Debido a que Boolean puede ser nulo, se puede usar para la carga diferida.

if(hasRoots == null){
   calculateRoots();
}

Java tiene tipos primitivos (int, booleano, flotante, etc.) y cada vez que desee usarlos como una instancia de un objeto, se envuelven en un tipo de clase asociado. Por ejemplo, los valores booleanos se envuelven en valores booleanos, int como Integer, etc.

Tiene sus beneficios también. boolean no tiene métodos auxiliares (ya que no es una clase), pero Boolean sí. Por lo tanto, si desea convertir una cadena en un valor booleano, puede probar con Boolean.valueOf(“true”).

Espero que ayude.

avatar de usuario
Mella

En cuanto a GWT, son los mismos en GWT que en Java.
booleano es un primitivo y booleano en un contenedor de objetos.

avatar de usuario
David Nouls

De acuerdo con los documentos de emulación de GWT JRE (http://code.google.com/webtoolkit/doc/1.6/RefJreEmulation.html) estos métodos son compatibles con el tipo booleano: Boolean(boolean), Boolean(String), parseBoolean(String), toString(boolean), valueOf(boolean), valueOf(String), booleanValue(), compareTo(Boolean), equals (Objeto), hashCode(), toString()

en cuanto a la diferencia entre tipos de objetos booleanos y booleanos. Los objetos booleanos pueden estar en 3 estados, por lo que no es exactamente lo mismo. Pero si eso hace una diferencia en GWT (en cuanto al rendimiento), no tengo ni idea, supongo que no importa mucho, ya que el compilador de GWT optimizará el código y la mayoría de las operaciones podrían simplemente asignarse a operaciones booleanas nativas de JavaScript.

Pero como de costumbre: para estar seguro, debe medir (y tenga en cuenta que esto puede diferir según el navegador/versión que esté midiendo).

El tipo de objeto booleano normalmente no se usa con mucha frecuencia ya que el tipo nativo booleano es más natural (no es necesario que verifique si hay valores nulos todo el tiempo).

¿Ha sido útil esta solución?