Я хочу сделать метод глубокого копирования. Я обратился за помощью здесь на днях с этой проблемой, но это было для конструктора копирования. Теперь мне нужен обычный метод. У меня есть код, созданный (нерабочий), но я просто не понимаю его полностью.
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;
}
Теперь, когда я создаю новый GhostList с именем jadeed, а затем создаю новый массив данных о призраках, знает ли он, что данные принадлежат нефритовому GhostList? Я не понимаю, как эти два могут быть связаны, даже если они должны быть.
Кроме того, я не получаю длины, совпадающие для копии и объекта this.object. В чем моя проблема?