我的示例枚举Singleton类是:
public class Test{
public enum MyClass{
INSTANCE;
private static String name = "Hello";
MyClass() {
test();
}
private static void test(){
name = name + "World";
System.out.println(name);
}
}
public static void main(String a[]){
MyClass m1 = MyClass.INSTANCE;
}
}
Run Code Online (Sandbox Code Playgroud)
获得的输出:nullWorld
预期输出:HelloWorld
在main()中,if
MyClass m1 = MyClass.INSTANCE;
Run Code Online (Sandbox Code Playgroud)
被替换为
MyClass.INSTANCE.test();
Run Code Online (Sandbox Code Playgroud)
然后,输出是HelloWorld,正如预期的那样.
这表明在构造函数完成执行之前,不会初始化静态字段.
问题:如何实现在访问静态字段的构造函数中调用方法的这种功能?