用枚举实现Singleton(在Java中)
我已经读过,可以Singleton
使用以下方式在Java中实现Enum
:
public enum MySingleton { INSTANCE;
}
但是,以上内容如何运作?具体来说,Object
必须实例化an 。在这里,如何MySingleton
实例化?谁在做什么new MySingleton()
?
回答:
这个,
public enum MySingleton { INSTANCE;
}
有一个隐式的空构造函数。相反,让它明确
public enum MySingleton { INSTANCE;
private MySingleton() {
System.out.println("Here");
}
}
如果你随后使用main()
类似的方法添加了另一个类
public static void main(String[] args) { System.out.println(MySingleton.INSTANCE);
}
你会看到
HereINSTANCE
enum
字段是编译时间常数,但它们是其enum
类型的实例。并且,它们是在首次引用枚举类型时构造的。
以上是 用枚举实现Singleton(在Java中) 的全部内容, 来源链接: utcz.com/qa/409149.html