2016-12-07 76 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

相關問題