Saltar al contenido

Cuando debe null valores de Boolean se utilizarán?

Si te encuentras con algún detalle que te causa duda puedes dejarnos un comentario y haremos todo lo necesario de ayudarte lo mas rápido que podamos.

Solución:

Usar boolean en vez de Boolean cada vez que puedas. Esto evitará muchos NullPointerExceptions y hacer que su código sea más robusto.

Boolean es útil, por ejemplo

  • para almacenar valores booleanos en una colección (Lista, Mapa, etc.)
  • para representar un booleano anulable (procedente de una columna booleana anulable en una base de datos, por ejemplo). Él null valor podría significar “no sabemos si es true o false” en este contexto.
  • cada vez que un método necesita un Objeto como argumento, y necesita pasar un valor booleano. Por ejemplo, al usar la reflexión o métodos como MessageFormat.format().

casi nunca uso Boolean porque su semántica es vaga y oscura. Básicamente tienes una lógica de 3 estados: true, false o desconocido. A veces es útil usarlo cuando, por ejemplo, le dio al usuario una opción entre dos valores y el usuario no respondió en absoluto y realmente desea conocer esa información (piense: columna de base de datos anulable).

No veo ninguna razón para convertir de boolean para Boolean ya que introduce sobrecarga de memoria adicional, posibilidad de NPE y menos tipeo. Típicamente uso incómodo BooleanUtils.isTrue() para hacer mi vida un poco más fácil con Boolean.

La única razón de la existencia de Boolean es la capacidad de tener colecciones de Boolean tipo (los genéricos no permiten booleanasí como todas las demás primitivas).

Vaya, ¿qué diablos? ¿Soy solo yo o todas estas respuestas son incorrectas o al menos engañosas?

La clase Boolean es un contenedor alrededor del tipo primitivo booleano. El uso de este contenedor es poder pasar un booleano en un método que acepta un objeto o genérico. es decir, vectorial.

Un objeto booleano NUNCA puede tener un valor de null. Si tu referencia a un booleano es nullsimplemente significa que su valor booleano nunca se creó.

Puede encontrar esto útil: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Boolean.java

UN null La referencia booleana solo debe usarse para activar una lógica similar a la que tenga cualquier otra null referencia. Usarlo para la lógica de tres estados es torpe.

EDITAR: aviso, que Boolean a = true; es una declaración engañosa. Esto realmente equivale a algo más cercano a Boolean a = new Boolean(true);
Consulte el autoboxing aquí: http://en.wikipedia.org/wiki/Boxing_%28computer_science%29#Autoboxing

Quizás de ahí viene gran parte de la confusión.

EDIT2: Lea los comentarios a continuación. Si alguien tiene una idea de cómo reestructurar mi respuesta para incorporar esto, hágalo.

Comentarios y puntuaciones

Si para ti ha sido de ayuda este post, nos gustaría que lo compartas con el resto seniors de esta manera contrubuyes a difundir nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *