// package and import things..
public class A {
public int x;
public static A ob;
A() {
A.ob.x = 5;
}
public static void main(String args[) {
A.ob = new A();
System.out.println(ob.x);
}
}
为什么这段代码会给出NullPointerException?如果我将“A.ob.x”改为“this.x”,那就完成了。但是在这段代码中已经A.ob =这个吗?
答案 0 :(得分:0)
A.ob = new A();
首先通过执行构造函数创建A,然后将创建的A分配给A.ob
。它基本上等同于
A tmp = new A();
A.ob = tmp;
因此,在调用构造函数时,A.ob仍为null。所以你得到一个NullPointerException。