Map
私が理解しているように、Javaで a の浅いコピーを作成するには、いくつかの方法があります(おそらく他の方法も) :
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();
ある方法が他の方法よりも優先されますか? もしそうなら、それはなぜですか?
言及する価値のあることの 1 つは、2 番目の方法では「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();
}