我有一个类ContainedObject
,它的实例应该包含在ArrayList
.
public class ContainedObject {
private ContainerArrayList<ContainedObject> containningArrayList;
public ContainerArrayList<ContainedObject> getContainningArrayList() {
return containningArrayList;
}
public void setContainningArrayList(ContainerArrayList<ContainedObject> list) {
containningArrayList = list;
}
}
现在,我想以ArrayList
这样一种方式扩展getContainningArrayList()
它包含的对象将反映它们的“容器”。例如,我add()
以这种方式覆盖:
public class ContainerArrayList<ContainedObject> extends ArrayList<ContainedObject> {
@Override
public boolean add(ContainedObject e) {
e.setContainningArrayList(this);
return super.add(e);
}
}
到目前为止,一切都很好。问题是,我还希望能够调用ContainerArrayList
复制构造函数和clone
方法等,并保持相同的包含反射。所以我的问题是——我应该重新实现这些方法中的每一个,还是它们以某种方式相互调用(即ArrayList(ArrayList)
用于add
构造新的arraylist)。
有什么线索吗?