2011-07-09 177 views
3

我想克隆DTO。我已经采取了DTO对象,如下所示:在Java中克隆对象

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方法?

回答

1

其实,没关系。您需要在您的类中覆盖克隆方法,因为它在java.lang.Object中进行了保护。不要忘记删除方法签名中的CloneNotSupportedException,这样就不必在代码中的任何地方处理它。

4

不幸的是cloning in Java is broken。如果您有选项,请尝试定义您自己的克隆界面,其中一个实际上有一个clone方法或使用复制构造函数来创建对象的副本。