在Java中,我有一个对象A,其中包含对象B和C,并且B和C都指向单个对象D。
现在,我想创建一个单独的A副本,其中B和C都指向D的另一个副本。
请帮助。
答案 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
}
}