Pourquoi est-ce que je reçois nulle exception de pointeur dans ce code?
-
28-09-2019 - |
Question
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);
}
}
Sortie: Exception en fil java.lang.NullPointerException "main" à Test.go (Test.java:12) à Test.main (Test.java:8)
La solution
C'est évidemment pas l'erreur. Vous obtiendrez un NullPointerException d'exécution parce que vous unboxing une référence null (i
) dans un (j
) primitive. Voir JLS §5.1.8 .
La i
raison est nulle est que les champs sont initialisés par exemple à 0, null ou false par défaut.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow