2016-12-07 75 views
1

我需要制作以下对象的副本并将其与原始对象进行比较,但我不知道从哪里开始。如何制作对象的副本并与原始对比

Administrator admin = new Administrator(first, last, 
    new Date(month,day,year), salary, title, department, supervisor); 

我曾尝试研究copyclone方法,但我似乎无法掌握它。

+0

自己写吗? –

+0

我需要使用这些方法 – RalphOrDie

+5

http://stackoverflow.com/questions/869033/how-do-i-copy-an-object-in-java – sandboxj

回答

0

为了使用克隆方法,您的类必须实现Cloneable接口。

请查看下面的示例代码。

public class MyClass implements Cloneable { 
    private String text; 
    private int size; 

    public String getText() { 
     return text; 
    } 
    public void setText(String text) { 
     this.text = text; 
    } 
    public int getSize() { 
     return size; 
    } 
    public void setSize(int size) { 
     this.size = size; 
    } 

    public MyClass clone() throws CloneNotSupportedException{ 
     return (MyClass)super.clone(); 
    } 
} 

克隆...

try{ 
    MyClass myClass = new MyClass(); 
    myClass.setSize(6); 
    myClass.setText("sample"); 

    MyClass myClass2 = myClass.clone(); 
} catch(Exception e){ 
    e.printStackTrace(); 
} 

确保您正确重写equals方法为对象比较。

+0

不要吞食异常。修复代码中的警告。如果对象包含其他可变对象,该怎么办?你需要一个浅层还是深层克隆? – Robert

+0

这只是一个例子。确实,可能会发生异常,尤其是在存在不可复制的对象时。 – Noel