2013-07-02 90 views
-1

嗨,我必须深入克隆包含数组列表的对象。Java深度克隆包含ArrayList的对象

public class Objct1 implements Cloneable { 
    ArrayList<Objt> o = new ArrayList(); 

    public Object1() { 
    } 

    @Override 
    protected Object clone() { 
     try { 
      return super.clone(); 
     } catch (CloneNotSupportedException e) { 
      // This should never happen 
      throw new InternalError(e.toString()); 
     } 
    } 
} 

public class Objt implements Cloneable { 
    private int ca; 

    /** 
    * @return the x 
    */ 
    public int getCa() { 
     return x; 
    } 

    /** 
    * @param x the x to set 
    */ 
    public void setCa(int ca) { 
     this.ca = ca; 
    } 

    @Override 
    protected Object clone() { 
     try { 
      return super.clone(); 
     } catch (CloneNotSupportedException e) { 
      // This should never happen 
      throw new InternalError(e.toString()); 
     } 
    } 
} 

我试图克隆Objct1在这个例子中

Objct1 a = new Objct1(); 

arryOfObjct1[count] = (Objct1) a.clone(); 
+0

您不是深度克隆,对于深度克隆,您必须遍历所有数组列表,并且Objt应该在克隆方法中执行深度克隆,可能是您可以序列化它们并强制您获得深层副本 – nachokk

回答