Java.lang.CloneNotSupportedException 不支持克隆异常解决方案
warning:
这篇文章距离上次修改已过203天,其中的内容可能已经有所变动。
java.lang.CloneNotSupportedException
异常表示尝试调用一个类的 clone()
方法,但该类没有实现 Cloneable
接口或者 clone()
方法被声明为 private
。
解决方法:
- 确保要克隆的类实现了
Cloneable
接口。 - 如果类有父类,确保所有父类也实现了
Cloneable
接口。 - 确保
clone()
方法是public
访问权限,以便外部可以调用。 - 如果类中包含对象属性,这些属性也需要是可克隆的。
示例代码:
public class Example implements Cloneable {
private int number;
private CloneableObject innerObject;
// 必须实现 clone 方法
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
class CloneableObject implements Cloneable {
// 实现 clone 方法
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
在实际使用时,如果不需要深克隆,可以直接调用 clone()
方法。如果需要深克隆(即复制对象及其引用的对象),则需要在 clone()
方法中手动克隆所有引用对象。
评论已关闭