2009-08-18 33 views

Respuesta

32

no estoy seguro de si el factor de GWT hace una diferencia, pero en general:

booleano es un tipo primitivo de Java mientras que booleana es un tipo de objeto/referencia que envuelve un valor lógico

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

Aquí hay más información:

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

Por qué caja que usted pide?

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

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

9

En Java, un boolean es un literal o truefalse, mientras Boolean es un contenedor de objeto para un boolean.

rara vez hay una razón para utilizar un Boolean durante un boolean excepto en los casos en que se requiere una referencia de objeto, como por ejemplo en un List.

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

5

Java tiene tipos primitivos (int, boolean, flotador, etc.) y en cualquier momento que desee utilizar como una instancia de un objeto que están envueltos en un tipo de clase asociada. Por ejemplo, booleanos quedan envueltos por Booleanos, int como entero etc.

Tiene sus ventajas también. boolean no tiene métodos de ayuda (ya que no es una clase), pero Boolean sí. Entonces, si quiere convertir una cadena en booleana, puede probar Boolean.valueOf ("true").

Espero que ayude.

1

En cuanto a GWT, son iguales en GWT que en java.
boolean es un primative y Boolean en un contenedor de objetos.

92

Es bastante simple y lo mismo para GWT y Java:

  • booleano puede ser sí o no
  • de Boole puede ser sí, no o NULL.

De modo que, a menos que necesite el NULL (como por ejemplo, cargar el campo de la base de datos, y desea que NULL sea diferente de falso), luego pegue en boolean.

+6

¡Agradable ... rápido y sucio! =) –

+18

no hay nada sucio al respecto. – rustyshelf

+0

¡Tnx tanto! Explicación tan útil y clara – AndreaNobili

1

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

en cuanto a la diferencia entre los tipos de objeto 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 GWT optimizará el código y la mayoría de las operaciones podrían simplemente mapearse a operaciones booleanas nativas de javascript.

Pero como de costumbre: para estar seguro, debe medir (y tener en cuenta que esto puede diferir en función de qué navegador/versión está midiendo).

El tipo de objeto Boolean normalmente no se usa con mucha frecuencia, ya que el tipo nativo booleano es más natural (no es necesario comprobar el nulo todo el tiempo).

5

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

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

booleano es un tipo primitivo mientras que booleana es class.Same envoltura se aplica for (int, Integer), (Long, Long) etc. clases Wrapper "envolver" el respectivo tipo de datos primitivo en un objeto de esa clase.

Se utilizan con colecciones, ya que los tipos primitivos no están permitidos con colecciones. También el uso de clases de envoltura le da acceso a muchos métodos que puede invocar sobre ese objeto. Por ejemplo. La clase contenedora de caracteres tiene métodos como:

isDigit() - para determinar si el carácter es dígito. isLower(): para determinar si el carácter está en minúsculas. es Letter() - para determinar si el carácter es un alfabeto.

no podemos usar los métodos anteriores si usamos un tipo primitivo en comparación con una clase contenedora.

Cuestiones relacionadas