delmon joven
¿Cómo se comprueba si un valor booleano es nulo o no? Entonces, si sé que “hideInNav” es nulo. ¿Cómo evito que siga ejecutándose? Algo como lo siguiente no parece funcionar, pero ¿por qué?
boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
Eich
boolean
Solo puede ser true
o false
porque es un tipo de datos primitivo (+ un boolean
el valor predeterminado de las variables es false
). Puedes usar la clase Boolean
en cambio, si quieres usar null
valores. Boolean es un tipo de referencia, esa es la razón por la que puede asignar null
a una “variable” booleana. Ejemplo:
Boolean testvar = null;
if (testvar == null) { ...}
-
Entonces, ¿podría hacer algo como: **Boolean hideInNav = parent.getProperties().get(“hideInNav”, false); if(hideInNav != null){ hacer algo } **
– Delmón Young
10 de abril de 2013 a las 22:47
-
si, porque entonces
hideInNav
tiene una referencia a unBoolean
objeto y puede sernull
(sin referencia asignada). Por lo tanto, puede verificar si la referencia esnull
.– Eich
10/04/2013 a las 22:50
-
BooleanUtils.isTrue(java.lang.Boolean bool) es lo que uso para verificar su estado en la condición en que Boolean puede ser nulo. commons.apache.org/proper/commons-lang/javadocs/api-2.4/org/…
– Youness
8 de marzo de 2019 a las 19:46
-
Sin apache commons:
Boolean.TRUE.equals(xxx)
– Eich
14/03/2019 a las 12:00
A boolean
no puede ser null
en Java.
A Boolean
sin embargo, puede ser null
.
si un boolean
no se le asigna un valor (por ejemplo, un miembro de una clase), entonces será false
por defecto.
-
Correcta Explicación, Gracias.
– Sajid khan
16 de marzo de 2019 a las 12:25
Joban Dhillon
Lo único que puede ser un null
es un no primitivo.
A boolean
que solo puede contener TRUE
o FALSE
es un primitivo. los TRUE
/FALSE
en la memoria son en realidad números (0
y 1
)
0 = FALSO
1 = VERDADERO
Entonces, cuando creas una instancia de un objeto, será nulo
String str; // will equal null
Por otro lado, si instancias una primitiva, se asignará a 0 por defecto.
boolean isTrue; // will be 0
int i; // will be 0
-
La capitalización de
Boolean
en unBoolean
que…” es desafortunado. Una variable de tipoboolean
solo puede sostenertrue
yfalse
sino una variable de tipoBoolean
sostiene unBoolean
objeto, onull
.– Josué Taylor
24 de junio de 2013 a las 17:09
boolean
es un tipo primitivo, y por lo tanto no puede ser nulo.
Su tipo en caja, Boolean
puede ser nulo.
La función probablemente está devolviendo un Boolean
a diferencia de un boolean
por lo que asignar el resultado a un Boolean
-type variable le permitirá probar la nulidad.
Tomás
en Java, null
solo se aplica a las referencias a objetos; ya que boolean
es un tipo primitivo, no se puede asignar null
.
Es difícil obtener contexto de tu ejemplo, pero supongo que si hideInNav
no está en el objeto devuelto por getProperties()
el (¿valor predeterminado?) que ha indicado será false
. Sospecho que este es el error que estás viendo, ya que false
no es igual a null
asi que hideNavigation
está obteniendo la cadena vacía?
Es posible que obtenga mejores respuestas con un poco más de contexto para su ejemplo de código.
null
es un valor asignado a un tipo de referencia. null
es un valor reservado, lo que indica que una referencia no se parece a una instancia de un objeto.
A boolean
no es una instancia de un objeto. Es un tipo primitivo, como int
y float
. De la misma manera que: int x
tiene un valor de 0
, boolean x
tiene un valor de false
.
booleano es un tipo de datos primitivo en Java y los tipos de datos primitivos no pueden ser nulos como otros primitivos int, float, etc.deben contener valores predeterminados si no están asignados.
En Java, solo los objetos pueden asignarse a nulo, lo que significa que el objeto correspondiente no tiene referencia y, por lo tanto, no contiene ninguna representación en la memoria.
Por lo tanto, si desea trabajar con objetos como nulo debería usar la clase booleana que envuelve un valor de tipo booleano primitivo dentro de su objeto.
Estas se llaman clases contenedoras en Java.
Por ejemplo:
Boolean bool = readValue(...); // Read Your Value
if (bool == null) { do This ...}