复制Java中引用相同对象的对象

时间:2018-07-31 18:08:12

标签: java copy

在Java中,我有一个对象A,其中包含对象B和C,并且B和C都指向单个对象D。

现在,我想创建一个单独的A副本,其中B和C都指向D的另一个副本。

请帮助。

2 个答案:

答案 0 :(得分:0)

您将不得不使用合成。在构建A时,使其具有B和C作为变量,然后在构造函数上将其传递给D实例,然后由B和C指向D实例。这就是Frighi所说的。

答案 1 :(得分:0)

只需在A对象中创建一个以A对象为参数的构造函数。 在D类中做同样的事情。

然后:

public class A {

    D b;
    D c;

    public A(A a) {
        this.b = new D(a.b);
        this.c = b;
    }
}


public class D {

    public D(D d) {
        // copy all d field to this
    }
}