我已经读过,可以Singleton使用以下方式在Java中实现Enum:
Singleton
Enum
public enum MySingleton { INSTANCE; }
但是,以上内容如何运作?具体来说,Object必须实例化an 。在这里,如何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