2011-03-31 40 views

回答

-1
public class Person { 
    private String name; 
    private int age; 

    // getters and setters. 
} 

// deep copy: 
Person source = new Person("james", 20); 
Person dest = new Person(); 
dest.setName(source.getName()); 
dest.setAge(source.getAge()); 
+1

這將工作,因爲年齡有一個原始類型和名稱有一個不可改變的類型,但不會與更高級別的對象 – Tanguy 2011-03-31 06:14:37

+0

是的,如果在** Person **中存在另一個對象,則需要遞歸執行此**深層副本**。 – 2011-03-31 06:15:57

3

有一種方法來實現深層克隆是使用複製構造技術。

例如,在此link

希望這有助於。

0

有兩種類型的副本:

  • 淺拷貝
  • 深拷貝

淺拷貝構造你的對象的新實例,但不爲域的對象構造新的實例可能有。 深拷貝構造你的對象的新實例,並構建新的實例字段的對象可能有,這些字段等

你可以有更多的細節上的ArrayList的clone()方法來看一看: 這是淺拷貝。如果你想深拷貝,你必須克隆你的列表包含的每個元素。