93 votes

Java vérifie si le booléen est nul

Comment vérifier si un booléen est nul ou non ? Donc si je sais que "hideInNav" est nul. Comment puis-je empêcher l'empêcher de continuer à s'exécuter ? Quelque chose comme ce qui suit ne semble pas fonctionner, mais pourquoi ?

boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";

144voto

Eich Points 3630

boolean ne peut être que true o false parce que c'est un type de données primitif (+ a boolean false ). Vous pouvez utiliser la classe Boolean à la place si vous voulez utiliser null valeurs. Le booléen est un type de référence, c'est la raison pour laquelle vous pouvez affecter null à une "variable" booléenne. Exemple :

Boolean testvar = null;
if (testvar == null) { ...}

71voto

increment1 Points 3144

A boolean ne peut être null en java.

A Boolean cependant, peut être null .

Si un boolean n'est pas assigné à une valeur (par exemple un membre d'une classe) alors il sera false par défaut.

10voto

Joban Dhillon Points 1290

La seule chose qui peut être null est une non-primivite.

A boolean qui ne peut contenir que TRUE o FALSE est une primitive. Le site TRUE / FALSE en mémoire sont en fait des nombres ( 0 y 1 )

0 = FAUX

1 = VRAI

Donc quand vous instanciez un objet, il sera nul. String str; // will equal null

Par contre, si vous instaurez une primitive, elle sera affectée à 0 par défaut.

boolean isTrue; // will be 0

int i; // will be 0

7voto

Kenogu Labz Points 664

boolean est un type primitif, et ne peut donc pas être nul.

Son type de boîte, Boolean peut être nul.

La fonction renvoie probablement un Boolean par opposition à un boolean donc l'affectation du résultat à un Boolean La variable -type vous permettra de tester la nullité.

7voto

Tom Points 1846

En Java, null ne s'applique qu'aux références d'objets ; puisque boolean est un type primitif, il ne peut pas être assigné null .

Il est difficile d'obtenir un contexte à partir de votre exemple, mais je suppose que si hideInNav n'est pas dans l'objet retourné par getProperties() la valeur (par défaut ?) que vous avez indiquée sera la suivante false . Je soupçonne que c'est le bogue que vous rencontrez, car false n'est pas égal à null Así que hideNavigation obtient la chaîne vide ?

Vous obtiendrez peut-être de meilleures réponses avec un peu plus de contexte pour votre échantillon de code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X