2011-07-09 13 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 . 


    } 
} 

私のクエリがそのcloneメソッドがObjectからであるので、なぜ我々はそれを直接使用することはできません私たちは `toStringメソッドをしますか?

答えて

1

実際、気にしないでください。 java.lang.Objectで保護されているので、クラス内のクローンメソッドをオーバーライドする必要があります。メソッドのシグネチャでCloneNotSupportedExceptionを削除することを忘れないでください。そうすれば、コード内のどこでも処理する必要はありません。

4

残念ながらcloning in Java is broken。オプションがある場合は、実際にcloneメソッドを持つ独自のクローンインターフェイスを定義するか、またはコピーコンストラクタを使用してオブジェクトのコピーを作成してください。

関連する問題