【问题标题】:which is preferable method copy() or clone() in java [duplicate]java中的方法copy()或clone()哪个更可取[重复]
【发布时间】:2015-10-09 04:31:47
【问题描述】:

我有一个需求,我需要从现有对象生成对象。我无法选择使用 clone() 或 copy() 的方法。

情况是如果用户单击按钮说复制/克隆我需要生成新的员工对象,该对象已经存在员工数据。

提前致谢

【问题讨论】:

  • Object 类中根本没有copy() 方法。
  • 最佳实践是constructor copy。

标签: java copy clone


【解决方案1】:

定义类时使用Clonable接口,创建一个返回类型为Object的克隆函数,该函数将抛出CloneNotSupportedException并返回克隆:

public class YourClass implements Cloneable{
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

当你创建对象时,使用克隆函数如下:

YourClass obj = new YourClass();
YourClass objCopy = (YourClass) obj.clone(); 

这是您可以从中受益的reference

编辑

您也可以使用比克隆更好的复制构造函数:

class YourClass {
  private String dummy;

  public YourClass (YourClass another) {
    this.dummy = another.dummy; 
  }
}

您的电话

YourClass class1 = new YourClass();
YourClass clone = new YourClass(class1);

【讨论】:

  • 我猜拷贝构造函数应该解决所有这些问题..
猜你喜欢
  • 2011-01-26
  • 2016-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
相关资源
最近更新 更多