直接克隆它的包装对象,只有保证数组存储的能被克隆
对象本身也要能克隆java的克隆是深拷贝的。

解决方案 »

  1.   

    数组里存的是什么类型的变量?
    如果是基本类型,直接clone该对象就可以了
    如果不是,则要对每一个数组里的变量都调用clone才能做到深克隆,否则clone出来的都是引用,指的仍然是一个地址
      

  2.   

    我刚看了看一些资料,如此看来,是不是必须对需要克隆的所有成员变量(不包括基本类型)都要进行Cloneable的引用定义?(这意味着要修改变量类型的定义)然后在最外层类比如叫GClass的
    clone方法中逐个进行GClass.vOfClassA.clone(),GClass.vOfClassB.clone()调用?
      

  3.   

    没错,必须对类中及数组中的所有对象调用clone方法
      

  4.   

    如果需要clone整个数组,那通常一定是程序设计有问题了,呵呵
    “哪位有现成的代码能克隆数组的???”?具体问题具体对待。Effective Java和Core Java对clone讲的都不错,看看就明白了。
    protected native Object clone() throws CloneNotSupportedException;
    clone是jvm直接支持的机制。
      

  5.   

    这个写起来好像比较麻烦
    你不如实现Serializable接口
    把要clone的数组串行化
    然后在反串行化,得到的就是和原有对象完全相同,但所有地址都与原有对象不一样的一个新对象了
      

  6.   

    to  goldenhua(深深地爱上了你) 
    ----如果需要clone整个数组,那通常一定是程序设计有问题了,呵呵
    为何?能说说原因吗>?
      

  7.   

    我现在可以用数组复制了。不过数组的复制,不能在我要复制的clone中实现。只能单独调用。也就是说,用Cloneable接口实现的clone函数,是没有办法实现深度复制的。看来只要有复杂数据类型,clone函数基本就不好使了。