用枚举实现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);

}

你会看到

Here

INSTANCE

enum字段是编译时间常数,但它们是其enum类型的实例。并且,它们是在首次引用枚举类型时构造的。

以上是 用枚举实现Singleton(在Java中) 的全部内容, 来源链接: utcz.com/qa/409149.html

回到顶部