怎么实现对ShapeManager的深复制哈。。
public class ShapeManager implements Cloneable{
private ArrayList<Shape> shapes = new ArrayList<Shape>(); public ArrayList<Shape> getShapes() {
return shapes;
} public void setShapes(ArrayList<Shape> shapes) {
this.shapes = shapes;
}
public void setShape(Shape shape){
shapes.add(shape);
} @Override
protected ShapeManager clone() throws CloneNotSupportedException {
ShapeManager copy = (ShapeManager)super.clone();
return copy;
}
}
public class ShapeManager implements Cloneable{
private ArrayList<Shape> shapes = new ArrayList<Shape>(); public ArrayList<Shape> getShapes() {
return shapes;
} public void setShapes(ArrayList<Shape> shapes) {
this.shapes = shapes;
}
public void setShape(Shape shape){
shapes.add(shape);
} @Override
protected ShapeManager clone() throws CloneNotSupportedException {
ShapeManager copy = (ShapeManager)super.clone();
return copy;
}
}
protected ShapeManager clone() throws CloneNotSupportedException {
ShapeManager copy = (ShapeManager)super.clone();
ArrayList<Shape> temp=new ArrayList<Shape>(shapes);
copy.setShapes(temp);
return copy;
}