在Java中克隆一个对象

3

我正在尝试克隆一个DTO。 我已经采取了一个DTO对象,如下所示:

public class Employee implements Cloneable 
{

    String name;
    String dept;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDept() {
        return dept;
    }

    public void setDept(String dept) {
        this.dept = dept;
    }

}

但是这行代码报错了:
public class Test 
{

        public static void main(String args[]) {
        Employee emp1 = new Employee();
        emp1.setDept("10");
        emp1.setName("Kiran");
        Employee emp2 = (Employee) emp1.clone(); // This Line is giving error .


    }
}

我的问题是,克隆方法来自于Object类,为什么我们不能像使用toString方法一样直接使用它?
3个回答

8

4

很遗憾,Java中的克隆功能已经失效。如果可以的话,尝试定义自己的克隆接口,该接口实际上具有一个clone方法,或者使用拷贝构造函数来创建对象的副本。


1
实际上,不用管了。您需要在您的类中重写clone方法,因为它在java.lang.Object中是受保护的。别忘了在方法签名中删除CloneNotSupportedException,这样您就不必在代码的各个地方都处理它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接