【发布时间】:2013-05-06 04:24:15
【问题描述】:
我在 Java 中对对象的引用有问题。这是情况。
假设我有一个名为 MyObject 的对象类。
class MyObject {
Long id;
String item;
Integer number;
BigDecimal bigNumber;
//and Some getter and setter methods
}
假设我有 hashmap:
HashMap<Long, MyObject> myHash = new HashMap<Long, MyObject>();
我用 MyObject 的一些对象填充这个 hashmap。
然后,当我尝试将此 hashmap 的所有元素复制到 arrayList(使用 addAll 方法)时,hashmap 中包含的所有对象都将复制到具有相同引用的 arraylist。出于这个原因,当我尝试在 hashmap 中更改 MyObject 对象时,它也在 arrayList 中更改。我不想那样。我该如何预防?
我希望我清楚地说明问题。
提前致谢。
【问题讨论】:
-
您必须复制
MyObject,通常使用复制构造函数。
标签: java object reference arraylist hashmap