warum ich primitive Typen in ternären Operationen auf null setzen kann
Ich dachte immer, dass primitive Typen in Java nicht sein könnennull
, da es ein Kompilierungsfehler ist, wenn ich versuche, so etwas zu tun:
int test = null;
In einer ternären Operation scheint es jedoch erlaubt zu sein:
int test = something != 0 ? 5 : null;
Ist eine ternäre Operation nicht kurz für (in diesem Fall):
int test;
if (something != 0){
test = 5;
} else {
test = null
}
was natürlich nicht erlaubt sein sollte. Wenn diese Bedingung nicht erfüllt ist, wird automatisch ein geworfenNullPointerException
aufgrund von Autoboxen. Warum holt der Java-Compiler keinen solchen Unsinn?