我是个java新手。看书上说如果一个对象的clone方法,如果成员也是对象的话,不复制对象,只复制引用。
    当然,书中提供了解决办法,就是在clone中对成员对象使用clone方法。但是我就发现个问题。比方说对象A中有对象B,对象B中用对象C,那么即使我复制了在A的clone中,clone对象b,但是C也是不clone的,只复制引用的。
    我想到一个笨办法,就是在B的clone方法中再clone一次C 。但是如果在这种嵌套比较多的情况下就很麻烦,不知道有没有聪明点方法的解决办法? 

解决方案 »

  1.   

       可以啊。就是觉得如果一个对象中有成员对象,然后这个成员对象之中,还有其他成员对象……然后这样好基层的嵌套。每个都要重写clone方法,有点太复杂了。
      

  2.   

    可以不断的override clone方法,或者,用序列/反序列化clone一个对象。
      

  3.   

    没有什么聪明的方法的,sun这样设计我觉得也不是很麻烦,呵呵
    最好的办法是使用eclipse插件生成
    http://www.sable.mcgill.ca/~ebodde/genclone/
      

  4.   

    把Java对象转换为字节序列的过程称为对象的序列化;把字节序列恢复为Java对象的过程称为对象的反序列化。
    建议楼主平时学习可以以core java(7th)作为参考书。