我有两个类,比如 Class Foo , Class Boo.Foo 类包含 Boo 类的数组列表。我需要创建 Foo 类的深层副本,并且我正在创建 Foo 本身的arraylist。我怎样才能做到这一点。
Class Foo{
ArrayList<Boo> boovar = new ArrayList<Boo>();
}
Class Boo{
int x;
void add_x(int y)
{
x=y;
}
}
ArrayList<Foo> foovar = new ArrayList<Foo>();
..adding elements to foovar.
现在我想创建一个 Foo 类型的 ArrayList foovar1,这样它就是 foovar 中对象的深层副本。即,如果我修改 foovar 中的 boo 对象,例如删除 x 或添加元素,则在我访问 foovar1 时不应反映它。
我知道深度复制已经被打死了,但我真的找不到文章告诉我如何做到这一点。有人可以告诉我如何使用代码吗?
编辑:
我试图在 Foo 中创建一个复制构造函数,就像提到的评论之一,但我真的不知道如何通过 Foo 中的构造函数将 Boo 数组列表复制到另一个。更不用说我将如何在数组列表中循环 Foo 的实例来创建它的副本。任何帮助将非常感激!