以下代码产生 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 值吗?