Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建克隆自定义对象_Java_Git - Fatal编程技术网

Java 创建克隆自定义对象

Java 创建克隆自定义对象,java,git,Java,Git,我正在尝试基于另一个对象创建一个新对象 public Case(Case datCase){ this.lstColors = (ArrayList<LineColor>) datCase.lstColors.clone(); this.lstCases = (ArrayList<Case>) datCase.lstCases.clone(); //this = (Case) datCase.clone(); }

我正在尝试基于另一个对象创建一个新对象

public Case(Case datCase){
        this.lstColors = (ArrayList<LineColor>) datCase.lstColors.clone();
        this.lstCases = (ArrayList<Case>) datCase.lstCases.clone();

        //this = (Case) datCase.clone();
    }
公共案例(案例datCase){
this.lstColors=(ArrayList)datCase.lstColors.clone();
this.lstCases=(ArrayList)datCase.lstCases.clone();
//this=(Case)datCase.clone();
}
当然,我在使用的每个对象上都使用了克隆方法(不是在像LineColor这样的内部对象中),但它似乎不是克隆(当原始对象更改时,对象仍然会更改)

我是这方面的新手,请帮帮我


PD:完整的项目在这里

ArrayList上的所有克隆都是ArrayList与第一个不同,但它仍然包含相同的对象。您必须迭代所有对象,并在第二个ArrayList中创建新对象,以使它们不同

下面是一个例子

公共静态列表克隆列表(列表狗列表){
List clonedList=newarraylist(dogList.size());
用于(狗:狗名单){
克隆列表。添加(新狗(狗));
}
返回克隆列表;
}

此示例实际上使用复制构造函数而不是克隆。

ArrayList上的所有克隆都是ArrayList与第一个不同,但它仍然包含相同的对象。您必须迭代所有对象,并在第二个ArrayList中创建新对象,以使它们不同

下面是一个例子

公共静态列表克隆列表(列表狗列表){
List clonedList=newarraylist(dogList.size());
用于(狗:狗名单){
克隆列表。添加(新狗(狗));
}
返回克隆列表;
}
这个示例实际上使用了复制构造函数而不是克隆

public static List<Dog> cloneList(List<Dog> dogList) {
    List<Dog> clonedList = new ArrayList<Dog>(dogList.size());
    for (Dog dog : dogList) {
        clonedList.add(new Dog(dog));
    }
    return clonedList;
}