Ich habe folgenden Code:
Boolean bool = null;
try
{
if (bool)
{
//DoSomething
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
Warum führt meine Überprüfung der Booleschen Variablen "bool" zu einer Ausnahme? Sollte es nicht einfach direkt an der if-Anweisung vorbei springen, wenn es "sieht", dass es nicht wahr ist? Wenn ich die if-Anweisung entferne oder überprüfe, ob sie NICHT null ist, verschwindet die Ausnahme.
if (bool == Boolean.TRUE)false ausgewertet, ohne eine Ausnahme zu generieren. Ich bin mir nicht sicher, ob dies in dem Fall beabsichtigt war, den ich gerade gefunden habe.
boolsein nullODER wenn Booleanwurde explizit (und nicht als Verweis auf gebaut Boolean.TRUE). Also nicht zu empfehlen; im Gegensatz dazu if (Boolean.TRUE.equals(bool))würde wie erwartet funktionieren, einschließlich sicherer Umgang mit nullWert.