次のコードは NullPointerException を生成します -
public class MyClass {
static MyClass instance= new MyClass(); // line 3
static Boolean have_Instance = true;
Boolean inst_Avail=have_Instance; // line 5
Boolean isInstAvail(){
return inst_Avail;
}
public static void main(String[] args) {
System.out.println(instance.isInstAvail() ? "Instance is there.":""); // gives java.lang.NullPointerException
}
}
line 3
afterに移動すると、正常にline 5
動作します。ここでの順序はどのように重要ですか? クラスのインスタンス化で毎回 iVar 値を設定するべきではありませんか?