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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage