java如何将一个对象深度复制到另一个具有相同字段的类对象?
我有两个java类,如下所示
public class A implements Serializable {
private String name;
private List<String> nameList;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getNameList() {
return nameList;
}
public void setNameList(List<String> nameList) {
this.nameList = nameList;
}
}
public class B implements Serializable {
private String name;
private List<String> nameList;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getNameList() {
return nameList;
}
public void setNameList(List<String> nameList) {
this.nameList = nameList;
}
}
现在我有了一个A级对象Aobj,两个字段都已初始化。我用的是小扁豆。copyProperties(Bobj,Aobj),但只有name
字段值被复制到Bobj中。名称列表为空。是否有一种方法可以深度复制一个对象,以便它复制所有字段,包括集合,如列表、地图等
我在什么地方听说过推土机,不确定这是否是为了这个目的
# 1 楼答案
有点奇怪的是,您有两个完全相同的不同类。但不管怎样,为了将一个方法深度复制到另一个方法,只需在某个Util类中编写两个静态方法。一个方法接受类A并返回类B,另一个方法接受类B并返回类A。自己进行深度复制。另外,您可以创建与类A和B相同的类C,然后使类A和B只是空的类,每个类都扩展了C。这将提供相同的结构,但会使复制逻辑更容易,因为您可以将A和B都作为C的实例使用