如何停止创建Singleton实例

joh*_*ohn 2 java singleton

我有一个像这样的Singleton类:

class Singleton {
    static class SingletonHolder {
        static final Singleton INSTANCE = new Singleton();
    }
    public static Singleton getInstance() {
        return SingletonHolder.INSTANCE;
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以从其他班级这样打电话:

Singleton dummy = new Singleton();
Run Code Online (Sandbox Code Playgroud)

如果是,我怎么能禁用它?如果没有,那为什么我不能?

Lou*_*man 7

当然.只需将构造函数设为私有以避免这种情况:只需添加private Singleton() {}以防止默认构造函数被公开.