我的项目中没有上课:
我如何限制课程克隆?
例如:
public class Personne throws CloneNotSupportedException {
...
}
答案 0 :(得分:3)
clone()
是一种protected
方法;作为使类可复制的一部分,您通常会覆盖它以使其成为public
,并提供实现。您可以在类和任何子类中阻止这两者:
@Override
protected final Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
final
关键字意味着没有子类能够用“真实”实现替换此方法。
答案 1 :(得分:2)
Invoking Object's clone method on an instance that does not implement the Cloneable interface
results in the exception CloneNotSupportedException being thrown
答案 2 :(得分:0)
Javadoc说:
在未实现
Object
接口的实例上调用Cloneable
的clone方法会导致抛出异常CloneNotSupportedException
。
因此,如果您未实施Cloneable
,clone
将自动抛出异常。
但即使你没有实现Cloneable
,子类也可以实现Cloneable
,这将使克隆工作。为防止这种情况发生,您可以定义此clone
方法:
@Override
protected final Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
final
关键字表示子类不能覆盖它。
答案 3 :(得分:-1)
好的,为了防止克隆对象,你必须创建一个
public Manager cloneManager() throws CloneNotSupportedException
{
throw new CloneNotSupportedException();
}
最终会抛出一个异常的uppon clone。(经理)。