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?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage