Java 在Singleton对象上调用clone方法时出错
为什么在单例对象上调用clone方法时出错 这是我的单身班:Java 在Singleton对象上调用clone方法时出错,java,singleton,cloning,Java,Singleton,Cloning,为什么在单例对象上调用clone方法时出错 这是我的单身班: public class Singleton { private Singleton (){ } private static Singleton singleton; public static Singleton getSingleton(){ if (singleton == null) { singleton = new Singleton();
public class Singleton {
private Singleton (){
}
private static Singleton singleton;
public static Singleton getSingleton(){
if (singleton == null) {
singleton = new Singleton();
return singleton;
}
return singleton;
}
}
这是一个在Singleton对象上调用clone方法的用户定义类:
public class SingletonDemo {
public static void main(String[] args) {
Singleton s = Singleton.getSingleton();
Singleton s1 = (Singleton)s.clone();
}
}
您尚未实现可克隆的
Cloneable
,因此,如果您尝试克隆类,将出现异常。您也应该覆盖clone()
发件人:
在未实现Cloneable
接口的实例上调用对象的clone方法会导致引发异常CloneNotSupportedException
同时请注意,克隆一个单身汉会使拥有一个单身汉的目的失效。事实上,一旦你克隆它,它就不再是一个单身汉了
作为一般规则(不应用于单体),考虑复制构造函数而不是克隆。
您能提供更多关于此的信息。你想做什么,为什么你甚至想克隆一个单例(如果你想克隆它,你没有正确地使用它)。