Comment vérifier si un booléen est nul ou non? Donc, si je sais que "hideInNav" est null. Comment puis-je l'empêcher de continuer à exécuter? Quelque chose comme ci-dessous ne semble pas fonctionner, mais pourquoi?
boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
boolean
ne peut être que true
ou false
car il s'agit d'un type de données primitif (+ a boolean
la valeur par défaut des variables est false
). Vous pouvez utiliser la classe Boolean
à la place si vous voulez utiliser les valeurs null
. Booléen est un type de référence, c'est pourquoi vous pouvez affecter null
à une "variable" booléenne. Exemple:
Boolean testvar = null;
if (testvar == null) { ...}
Un boolean
ne peut pas être null
en Java.
Un Boolean
, cependant, peut être null
.
Si aucune valeur n'est attribuée à boolean
(par exemple, un membre d'une classe), il s'agira de false
par défaut.
La seule chose qui peut être un null
est un non-primivite.
Un boolean
qui ne peut contenir que TRUE
ou FALSE
est une primitive. Les TRUE
/FALSE
en mémoire sont en fait des nombres (0
et 1
)
0 = FALSE
1 = VRAI
Ainsi, lorsque vous instanciez un objet, il devient null String str; // will equal null
Par contre si vous instanciez une primitive, elle sera assignée à 0 par défaut.
boolean isTrue; // will be 0
int i; // will be 0
En Java, null
ne s'applique qu'aux références d'objet; comme boolean
est un type primitif, il ne peut pas être attribué à null
.
Il est difficile de comprendre le contexte de votre exemple, mais je suppose que si hideInNav
ne figure pas dans l'objet renvoyé par getProperties()
, la (valeur par défaut?) Que vous avez indiquée sera false
. Je soupçonne que c'est le bogue que vous voyez, car false
n'est pas égal à null
, donc hideNavigation
obtient la chaîne vide?
Vous obtiendrez peut-être de meilleures réponses avec un peu plus de contexte dans votre exemple de code.
boolean
est un type primitif et ne peut donc pas être null.
Son type encadré, Boolean
, peut être null.
La fonction renvoie probablement un Boolean
par opposition à un boolean
. Par conséquent, l'affectation du résultat à une variable de type Boolean
vous permettra de tester la nullité.
null
est une valeur affectée à un type de référence. null
est une valeur réservée, indiquant qu'une référence ne ressemble pas à une instance d'objet.
Un boolean
n'est pas une instance d'un objet. C'est un type primitif, comme int
et float
. De la même manière que: int x
a une valeur de 0
, boolean x
a une valeur de false
.