有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    有点奇怪的是,您有两个完全相同的不同类。但不管怎样,为了将一个方法深度复制到另一个方法,只需在某个Util类中编写两个静态方法。一个方法接受类A并返回类B,另一个方法接受类B并返回类A。自己进行深度复制。另外,您可以创建与类A和B相同的类C,然后使类A和B只是空的类,每个类都扩展了C。这将提供相同的结构,但会使复制逻辑更容易,因为您可以将A和B都作为C的实例使用