내가 이해하는 바와 같이 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();
}