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