我有一个只有静态成员的类,设计如下:
public class Clazz {
public static final Foo foo = FooFactory.createFoo();
private static Bar bar;
public static void prepare() {
bar = new Bar(foo);
}
}
调用Clazz.prepare()时,我可以看到foo在bar初始化时为null。据我所知,应该在调用类的任何静态方法之前调用静态初始化程序。因此,调用prepare()时应该已经初始化了foo。 我错过了什么吗?
答案 0 :(得分:1)
FooFactory.createFoo()
必须返回null
值
答案 1 :(得分:-1)
实际上,Foo的初始化程序也调用了Clazz.prepare()。这就是原因。感谢@biziclop的想法。