¿Por qué recibo excepción de puntero nulo en este código?
-
28-09-2019 - |
Pregunta
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);
}
}
Salida: Excepción en hilo java.lang.NullPointerException "principal" en Test.go (Test.java:12) en Test.main (Test.java:8)
Solución
Esto obviamente no es el error. Obtendrá una NullPointerException tiempo de ejecución porque estás unboxing una referencia nula (i
) en una primitiva (j
). Ver JLS §5.1.8 .
La razón i
es nula es que los campos instancia se inicializan a 0, null o false de forma predeterminada.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow