我已经读到可以Singleton使用以下方法在 Java中实现Enum:
Singleton
Enum
public enum MySingleton { INSTANCE; }
但是,以上是如何工作的?具体来说,Object必须实例化一个。在这里,如何MySingleton被实例化?谁在做new MySingleton()?
Object
MySingleton
new MySingleton()
这个,
有一个隐式的空构造函数。改为明确,
public enum MySingleton { INSTANCE; private MySingleton() { System.out.println("Here"); } }
main()如果您随后使用类似的方法添加了另一个类
main()
public static void main(String[] args) { System.out.println(MySingleton.INSTANCE); }
你会看到
Here INSTANCE
enum字段是编译时常量,但它们是其enum类型的实例。而且,它们是 在第一次 引用枚举类型时构造的。
enum