我想做一个深度复制的方法。前几天我在这里寻求了关于这个问题的帮助,但那是针对复制构造函数的。现在我需要一个常规的方法。我已经创建了代码(不工作),但我只是不完全理解它。
public GhostList deepCopy(){
int length=this.getLength();
GhostList jadeed=new GhostList();
Ghost[] data = new Ghost[length];
for (int i=0;i<this.getLength();i++){
data[i] = new Ghost();
data[i].setX(this.ghosts[i].getX());
data[i].setY(this.ghosts[i].getY());
data[i].setColor(this.ghosts[i].getColor());
data[i].setDirection(this.ghosts[i].getDirection());
}
return jadeed;
}
现在,当我创建一个名为jaded的新GhostList,然后在此基础上创建一个新的GhostData数组时,它知道数据属于jaded GhostList吗?我看不出这两者是怎么联系在一起的,尽管它们应该是。
此外,我没有得到与副本和这个对象匹配的长度。我的问题是什么?