也许我不明白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