Jak rozumiem, istnieje kilka sposobów (być może także innych) na utworzenie płytkiej kopii pliku Map
w Javie:
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();
Czy jeden sposób jest preferowany od drugiego, a jeśli tak, to dlaczego?
Warto wspomnieć o tym, że druga metoda daje ostrzeżenie o „Unchecked Cast”. Musisz więc dodać, @SuppressWarnings("unchecked")
aby to obejść, co jest trochę irytujące (patrz poniżej).
@SuppressWarnings("unchecked")
public Map<String, Object> getDataAsMap() {
// return a shallow copy of the data map
return (Map<String, Object>) ((HashMap<String, Object>) data).clone();
}