我想做一个深层复制方法。前几天,我在此问题上寻求帮助,但这是针对复制构造函数的。现在,我需要一个常规方法。我已经创建了代码(不起作用),但是我只是没有完全理解它。

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;
    }


现在,当我创建一个新的名为jadeed的GhostList并在其下创建一个新的幽灵数据数组时,它是否知道数据属于翡翠的GhostList?我不知道两者如何关联,即使它们应该关联。

另外,我没有得到与副本和this.object相匹配的长度。我怎么了

最佳答案

您创建了一个新的GhostList和一个新的Ghost数组。
您填写Ghost数组并返回GhostList,但是返回的GhostListGhost数组无关。
您应该将所有新的鬼添加到GhostList

09-12 15:37