Comment vérifier si un booléen est nul ou non? Donc, si je sais que “hideInNav” est nul. Comment puis-je l’empêcher de continuer à s’exécuter? Quelque chose comme ci-dessous ne semble pas fonctionner, mais pourquoi?
boolean hideInNav = parent.getProperties().get("hideInNav", false); Ssortingng hideNavigation = hideInNav != null ? hideInNav : "";
boolean
ne peut être true
ou false
parce que c’est un type de données primitif (+ la valeur par défaut d’une variable boolean
est false
). Vous pouvez utiliser la classe Boolean
place si vous souhaitez utiliser null
valeurs null
. Boolean est un type de référence, c’est la raison pour laquelle vous pouvez assigner null
à une “variable” booléenne. Exemple:
Boolean testvar = null; if (testvar == null) { ...}
Un boolean
ne peut pas être null
en Java.
Un Boolean
peut cependant être null
.
Si aucune valeur n’est atsortingbuée à un boolean
(par exemple, un membre d’une classe), ce sera false
par défaut.
La seule chose qui peut être null
est une non primitive.
Un boolean
qui ne peut contenir que TRUE
ou FALSE
est une primitive. Les TRUE
/ FALSE
en mémoire sont en réalité des nombres ( 0
et 1
)
0 = FAUX
1 = VRAI
Donc, quand vous instanciez un object, il sera nul Ssortingng str; // will equal null
Ssortingng str; // will equal null
Par contre, si vous installez une primitive, celle-ci sera affectée à 0 par défaut.
boolean isTrue; // will be 0
int i; // will be 0
boolean
est un type primitif et ne peut donc pas être nul.
Son type en boîte, Boolean
, peut être nul.
La fonction retourne probablement un Boolean
par opposition à un boolean
, donc assigner le résultat à une variable de type Boolean
vous permettra de tester la nullité.
En Java, null
s’applique uniquement aux références d’object; puisque boolean
est un type primitif, il ne peut pas être atsortingbué de null
.
Il est difficile d’obtenir un contexte à partir de votre exemple, mais je suppose que si hideInNav
n’est pas dans l’object 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, comme false
n’est pas égal à null
, donc hideNavigation
obtient la chaîne vide?
Vous pourriez obtenir de meilleures réponses avec un peu plus de contexte à votre exemple de code.
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’un object.
Un boolean
n’est pas une instance d’un object. C’est un type primitif, comme int
et float
. De la même façon que: int x
a la valeur 0
, boolean x
a la valeur false
.
La valeur par défaut des types de données réellement primitifs est null pour les variables locales.