如何初始化在Java类的私有静态成员。
尝试以下操作:
public class A {
private static B b = null;
public A() {
if (b == null)
b = new B();
}
void f1() {
b.func();
}
}
但打造A级的第二个对象,然后调用F1(),我得到一个空指针异常。
如何初始化在Java类的私有静态成员。
尝试以下操作:
public class A {
private static B b = null;
public A() {
if (b == null)
b = new B();
}
void f1() {
b.func();
}
}
但打造A级的第二个对象,然后调用F1(),我得到一个空指针异常。
优选的方法来初始化静态成员不是(如前所述)
private static final B a = new B(); // consider making it final too
或者更复杂的初始化代码,你可以使用一个静态初始化块:
private static final B a;
static {
a = new B();
}
您的代码应该工作。 你确定你可以发布您的确切的代码?
你也可以更直接地将其初始化:
public class A {
private static B b = new B();
A() {
}
void f1() {
b.func();
}
}