我有两个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,两个字段都已初始化。我正在使用BeanUtils.copyProperties(Bobj,Aobj),但只有name
字段值被复制到Bobj中,但Bobj.nameList为null。有没有办法深度复制对象,以便复制所有字段,包括列表,地图等集合。
我在某个地方听说过Dozer,不确定这是否是为了这个目的。
答案 0 :(得分:1)
有两个完全相同的不同类,有点奇怪。但无论如何,为了深入复制一个到另一个,只需在一些Util类中编写2个静态方法。一种方法将采用A类并返回B类,另一种方法将采用B并返回A类。自己进行深度复制。此外,您可以创建与您的类A和B相同的类C,然后使您的类A和B只是每个扩展C的空类。它将为您提供相同的结构,但会使您的复制逻辑更容易,因为您可以只使用A和B作为C的实例。