Warum erlaubt der Java-Compiler manchmal das Entpacken von null?
Zum Beispiel:
int anInt = null;
schlägt beim kompilieren aber fehl
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("" + getSomeVal());
}
}
public static int getSomeVal() {
return new Random().nextBoolean() ? 1 : null;
}
schlägt (normalerweise) zur Laufzeit fehl. Ich versuche gerade zurückzukehrennull
wird auch zu einem Kompilierungsfehler führen, daher gehe ich davon aus, dass es etwas mit mehreren Pfaden zu tun hat, das den Compiler veranlasst, darauf zu schließennull
ist möglicherweise eine Autoboxint
? Warum kann Javac nicht scheitern, beide Fälle mit dem gleichen Fehler zu kompilieren?