Ho il codice seguente:
Boolean bool = null;
try
{
if (bool)
{
//DoSomething
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
Perché il mio controllo sulla variabile booleana "bool" genera un'eccezione? Non dovrebbe semplicemente saltare oltre l'istruzione if quando "vede" che non è vero? Quando rimuovo l'istruzione if o controllo se NON è null, l'eccezione scompare.
if (bool == Boolean.TRUE)valuta false senza generare un'eccezione. Non sono sicuro che questo fosse intenzionale nel caso che ho appena trovato.
boolessere nullOR se Booleancostruito esplicitamente (e non come riferimento a Boolean.TRUE). Quindi non raccomandato; al contrario del if (Boolean.TRUE.equals(bool))quale funzionerebbe come previsto, compresa la gestione sicura del nullvalore.