Java如何销毁Singleton实例

use*_*602 5 java singleton

我有一个像这样创建的单例

private static class SingletonHolder { 
    public static Singleton INSTANCE = new Singleton();
}

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

我想在某个时间重置单例实例.(我确信此时重置单例实例是安全的).我试图删除最终说明符,并在我想重置它时将实例设置为null但问题是如何获取另一个实例(它将保持为null)

另一个问题是可以安全地删除SingletonHolder中的最终说明符.

谢谢

Pol*_*ino 5

如果您确实需要重置单例实例(实际上这没有多大意义),您可以将其所有内部成员包装在私有对象中,并通过显式initialize()和reset()方法重新初始化。这样,您可以保留单例状态并提供某种“重置”功能。