在 Java 中使用枚举实现单例
值得注意的是,单例模式可以使用枚举在 Java 中实现,如以下代码:
public enum MySingleton { INSTANCE; }
但是,会出现有关实例化过程的问题。传统的对象实例化涉及调用构造函数,但在枚举中,这不是显式完成的。
实例化枚举
枚举有一个隐式的空构造函数。为了使其明确,您可以将其添加到枚举定义中:
public enum MySingleton { INSTANCE; private MySingleton() { System.out.println("Here"); } }
现在,如果您使用 main 方法创建一个类并实例化 Singleton 枚举:
public static void main(String[] args) { System.out.println(MySingleton.INSTANCE); }
您将看到以下输出:
Here INSTANCE
枚举字段本质上是枚举类型的实例。它们是在首次引用枚举类型时构造的。因此,当您访问 main 方法中的 INSTANCE 字段时,它会触发 MySingleton 的实例化及其构造函数运行,并在控制台上打印“Here”。
以上是Java 枚举中如何创建单例实例?的详细内容。更多信息请关注PHP中文网其他相关文章!