我已經知道,淺拷貝是什麼,但我不能提示它。這是一個簡短的例子。Java中的淺拷貝
public class Shallow {
String name;
int number;
public Shallow (Shallow s) {
this.name = s.name;
this.number = s.number;
}
}
測試執行...
public class ShallowTest {
public static void main (String[] args) {
Shallow shallow = new Shallow("Shallow", 123);
Shallow shallowClone = new Shallow(shallow);
shallowClone.name = 'Peter';
shallowClone.number = 321;
System.out.println(shallow.name + " - " + shallow.number);
}
}
正如我的目的,非原始數據類型爲String的只是引用的將被複制,因此通過調用「shallowClone.name =‘彼得’; 「我也會改變「淺」的名字。我對嗎?但不知何故,它只是不想工作....
'新的淺(淺)'構造函數代碼是怎麼樣的?你沒有把它包括在問題中,而問題可能在那裏引起。值得注意的是字符串是不可變的。 – BalusC 2010-04-25 18:08:20
剛剛編輯了構造函數。 此外:我其實喜歡只是複製對象的引用 - 這是目標;) – Vilius 2010-04-25 18:13:45