此例子中三个类 comA comB comC
其中 comC继承了 comA
conC中有一个列表其中元素是comB。
我出现的问题是:comB中没有引用接口implements Serializable, Cloneable
导致数据CLONE不到!
正确的如下:
public class comA implements Serializable, Cloneable {
... ....
// 深度复制
public Object clone() {
comA o = null;
try {
o = (comA ) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}
}
public class comB bimplements Serializable, Cloneable{
... ....
// 深度复制
public Object clone() {
comB o = null;
try {
o = (comB ) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}
}
public class comC extends comA{
public ArrayList< comB > panoList = null ;
// 深度复制
public Object clone() {
comC o = null;
o = (comC ) super.clone();
ArrayList< comB > tPanolist= new ArrayList< comB >();
for (int i = 0; i < this.panoList.size(); i++) {
comB tPoi = new comB ();
tPoi = (comB ) (this.panoList.get(i).clone());
tPanolist.add(tPoi);
}
o.panoList = tPanolist;
return o;
}
}