Frage

public class Test {

    Integer i;
    int j;

    public static void main ( String [] args ) {
       Test t = new Test ();
       t.go();
    }

    public void go() {
       j=i;
       System.out.println(j);
       System.out.println(i);
    }
}

Ausgang: Exception in thread "main" java.lang.NullPointerException     bei Test.go (Test.java:12)     bei Test.main (Test.java:8)

War es hilfreich?

Lösung

Das ist natürlich nicht der Fehler. Sie erhalten einen Laufzeitnullpointer bekommen, weil Sie eine Nullreferenz (i) in eine primitive (j) sind Unboxing. Siehe JLS §5.1.8 .

Der Grund i ist null ist, dass Instanzfelder initialisiert werden auf 0, null oder falsch standardmäßig aktiviert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top