也許我不明白clone()
是如何工作的。返回值不應該等於主叫方嗎?Java:克隆()和等式檢查
int[] nums = new int[] {0, 1, 2};
int[] list = nums.clone();
nums.equals(list); //returns false. Why?
for (int ket = 0; ket < list.length; ket++) {
System.out.println(list[ket] == nums[ket]); //prints out true every time
}
list == nums //false
這是迄今爲止的最佳答案(獎勵它)。當你正在考慮實現Cloneable,或者重寫equals或hashcode時,請閱讀:http://www.javaworld.com/javaworld/jw-01-1999/jw-01-object.html 我的通用建議是:使用Cloneable/clone(),但使用複製構造函數(僅將當前Class的實例作爲參數)複製。節省自己的痛苦。 – 2009-10-15 21:28:19