当前位置: 代码迷 >> J2SE >> 关于克隆的一些疑问,求大大指教!该如何解决
  详细解决方案

关于克隆的一些疑问,求大大指教!该如何解决

热度:190   发布时间:2016-04-24 12:35:16.0
关于克隆的一些疑问,求大大指教!
Java code
package c12;import java.util.*; class Int {    private int i;    public Int(int ii) { i = ii; }    public void increment() { i++; }    public String toString() {        return Integer.toString(i);    } } public class Cloning {    public static void main(String[] args) {        Vector v = new Vector();        for(int i = 0; i < 10; i++ )           v.addElement(new Int(i));        System.out.println("v: " + v);        Vector v2 = (Vector)v.clone();       //Increment all v2's elements:       for(Enumeration e = v2.elements();             e.hasMoreElements(); )           ((Int)e.nextElement()).increment();         //See if it changed v's elements:        System.out.println("v2:"+v2);       System.out.println("v:"+v);      if (v2!=v)          System.out.println("This is different");      // System.out.println("v: " + v);    } }

输出结果是这样的:
v: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
v2:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
v:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
This is different
明明是相同的,而且我看过内存的地址也是相同的,为什么判断出来就是不相同的呢?

------解决方案--------------------
探讨

那为什么V2改变了,v也会跟着改变呢?
  相关解决方案