なぜこのコードでnullポインターの例外を取得できるのですか?
-
28-09-2019 - |
質問
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);
}
}
出力: test.go(test.java:12)のtest.go(test.java:8)のスレッド「main」java.lang.nullpointerexceptionの例外
解決
それは明らかにエラーではありません。ヌルの参照を解き放つため、ランタイムnullpointerexceptionを取得します(i
)プリミティブに(j
)。 JLSを参照してください §5.1.8.
理由 i
nullは、インスタンスフィールドがデフォルトで0、null、またはfalseに初期化されるということです。
所属していません StackOverflow