java - 创建深拷贝方法,Java

标签 java arrays object clone deep-copy

我想做一个深拷贝的方法。前几天我在这里就这个问题寻求帮助,但那是针对复制构造函数的。现在我需要一个常规方法。我已经创建了代码(无法运行),但我只是没有完全理解它。

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,然后在其下创建一个新的幽灵数据数组时,它知道该数据属于 jadeed GhostList 吗?我看不出这两者如何关联,尽管它们应该是关联的。

另外,我没有得到匹配副本和 this.object 的长度。我的问题是什么?

最佳答案

您创建了一个新的 GhostList 和一个新的 Ghost 数组。
你填写Ghost数组,返回GhostList,但是返回的GhostListGhost数组没有任何关系.
您应该将所有新幽灵添加到 GhostList

关于java - 创建深拷贝方法,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3951024/

相关文章:

c - 在c语言windows中通过函数重置二维数组

JavaScript 对象子类

object - 在Intellij IDEA中使用快捷方式和自动完成功能创建新对象的最佳方法是什么?

javascript - 如何将此数组转换为对象数组?

php - 如何获取对象或类名?

java - JAXB required=true 似乎不需要

java - 从 MATLAB 传递给 Java 的奇怪类

java - 让 CompletableFuture 异常()处理 supplyAsync() 异常

java - 如何将两个 JPanel 添加到 JFrame 的中心?

arrays - 如何在 Swift 的 View Controller 类中与 Collection View 委托(delegate)共享数据