gpt4 book ai didi

java - 枚举和单例

转载 作者:行者123 更新时间:2023-12-01 23:26:34 24 4
gpt4 key购买 nike

考虑以下实现

public enum Singleton {

INSTANCE;
private final OnlyOne onlyOne;

Singleton() {
onlyOne = new OnlyOne();
}

public static Singleton getInstance() {
return INSTANCE;
}

public static void main(String[] args) {

Singleton one = getInstance();
one.onlyOne.method();
}

}

class OnlyOne {

public void method() {
System.out.println("Hello World");
}
}

这里我尝试使用enum来实现单例。我希望 OnlyOne 只有一个实例。我的问题是如何限制客户端实例化 OnlyOne 类的对象?因为在其他一些类中我们可以轻松做到这一点

OnlyOne  one = new OnlyOne();

我无法为其提供私有(private)构造函数,因为这样做会破坏这个

Singleton() {
onlyOne = new OnlyOne();
}

我是否需要使用枚举作为 OnlyOne 类的内部成员?有什么建议吗?

最佳答案

INSTANCE 本身是单例。将您的方法直接添加到枚举中。

public static void main(String[] args) {
Singleton.INSTANCE.method();
}

public enum Singleton {
INSTANCE;
public void method() {
System.out.println(this);
}
}

关于java - 枚举和单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19898836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com