[英]Java implementing interface Cloneable on a inheritance structure
我的代码有以下问题:
public class Parent {
...
}
public class Child extends Parent implements Cloneable {
...
@Override
public Child clone() {
return new Child() //deep copy
}
}
以下是我的问题:
throws CloneNotSupportedException
添加到 clone() 方法中,还是允许我将其放在一边? 因为我无法捕捉到我调用克隆()的异常。谢谢你的帮助。
编辑:我选择了复制构造函数,因为它们更容易实现和动态。
Cloneable 是遗留的(旧的和奇怪的,应该避免未来的发展)。 它不能进行深度复制,而且它的努力不值得实施。 您需要使用像 Jackson 或 Apache 这样的第三方库来进行深度复制。 或者您可以构建自己的深拷贝方法。
如果你已经实现了深拷贝,最好在构造函数上使用它。
public class Child extends Parent {
public Child(Child child){
this.property = child.getProperty();
// any copies
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.