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