web-dev-qa-db-fra.com

Java vérifier si la valeur booléenne est nulle

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 : "";
59
Delmon Young

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) { ...}
105
Eich

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.

37
Trevor Freeman

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

7
Joban Dhillon

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.

7
Tom

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é.

6
Kenogu Labz

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.

3
christopher