【发布时间】:2012-10-31 01:27:02
【问题描述】:
我有一个包含 Map 的类,它的键是字符串,值是另一个类的对象。
Class Employee {
String name;
}
Class Company {
Map<String, Employee> m =new HashMap<String, Employee>();
}
我有两个 Company 对象 obj1 和 obj2,我想将地图从一个对象复制到另一个对象。
如果我做了以下任何事情,
obj1 = obj2 or
obj1.setM(obj2.getM()) // assume we have setters and getters
现在,如果我操作 obj1 的映射,使任何值指向 Employee 的不同对象,用于 obj2 具有的同一 Company 对象,其中 obj2 的映射也会受到影响。
有没有办法(除了将键和值复制到新映射并将其分配给对象),我们可以将映射内容复制到另一个对象的映射,这样操作一个映射不会影响另一个映射。任何建议都非常感谢。
【问题讨论】:
-
查找“深度复制”,这似乎是您必须做的事情,而不是您当前正在做的“浅层”复制。
-
是的,你需要在 hashmap 中克隆每个 Employee 对象实例
标签: java