Referenz: http://java.sun.com/j2se/1.5.0/docs/guide/language/autoboxing.htmlWarum erlaubt Autoboxing in Java mir 3 mögliche Werte für einen booleschen Wert?
"Wenn Ihr Programm versucht, null autounbox, wird es eine Nullpointer werfen."
javac gibt Ihnen einen Fehler bei der Kompilierung, wenn Sie versuchen, einem booleschen Wert null zuzuordnen. macht Sinn. das Zuweisen von null zu einem booleschen Wert ist jedoch a-ok. macht auch Sinn, schätze ich.
aber lassen Sie uns darüber nachdenken, dass Sie eine NPE erhalten, wenn Sie versuchen, null zu autoun. Dies bedeutet, dass Sie Boolesche Operationen für Boolesche Operationen nicht ohne NULL-Prüfung oder Ausnahmeverarbeitung ausführen können. Gleiches gilt für mathematische Operationen an einem Integer.
für eine lange Zeit war ich ein Fan von Autoboxing in Java 1.5 +, weil ich dachte, dass es Java näher zu sein, wirklich objektorientiert. Aber nachdem ich letzte Nacht auf dieses Problem gestoßen bin, muss ich sagen, dass ich denke, dass es scheiße ist. Der Compiler, der mir einen Fehler gibt, wenn ich versuche, mit einem nicht initialisierten Primitiv zu arbeiten, ist eine gute Sache. Ich möchte Autoboxing nicht verwenden, wenn ich das verliere.
Ich denke, ich mag den Punkt des Autoboxierens falsch verstehen, aber gleichzeitig werde ich niemals akzeptieren, dass ein Boolescher Wert 3 Werte haben kann. Kann mir das jemand erklären? was bekomme ich nicht?
Eine Ja-oder-Nein-Frage kann drei Antworten haben: Ja, Nein, ich weiß es nicht – ADTC