J'ai le code suivant:
Boolean bool = null;
try
{
if (bool)
{
//DoSomething
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
Pourquoi ma vérification de la variable booléenne "bool" entraîne-t-elle une exception? Ne devrait-il pas simplement sauter juste au-delà de l'instruction if quand il "voit" que ce n'est pas vrai? Lorsque je supprime l'instruction if ou que je vérifie si elle n'est PAS nulle, l'exception disparaît.
if (bool == Boolean.TRUE)
évalue false sans générer d'exception. Je ne sais pas si c'était intentionnel dans le cas que je viens de trouver.
bool
être null
OU si Boolean
était construit explicitement (et non comme référence à Boolean.TRUE
). Donc pas recommandé; par opposition à if (Boolean.TRUE.equals(bool))
ce qui fonctionnerait comme prévu, y compris la null
valeur de manutention en toute sécurité .