最佳答案
据我所知,有几种方法(也许还有其他方法)可以在 Java 中创建 Map
的浅拷贝:
Map<String, Object> data = new HashMap<String, Object>();
Map<String, Object> shallowCopy;
// first way
shallowCopy = new HashMap<String, Object>(data);
// second way
shallowCopy = (Map<String, Object>) ((HashMap<String, Object>) data).clone();
一种方法优于另一种方法,如果是这样,为什么?
值得一提的是,第二种方法会提供“ UncheckCast”警告。因此,你必须添加 @SuppressWarnings("unchecked")
来绕过它,这是一个有点恼人(见下文)。
@SuppressWarnings("unchecked")
public Map<String, Object> getDataAsMap() {
// return a shallow copy of the data map
return (Map<String, Object>) ((HashMap<String, Object>) data).clone();
}