Как я понимаю, существует несколько способов (возможно, других) создать небольшую копию Map
в Java:
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();
Один из способов предпочтительнее другого, и если да, то почему?
Одна вещь, о которой стоит упомянуть, заключается в том, что второй способ дает предупреждение "Unchecked Cast". Поэтому вам нужно добавить @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();
}