HashMap put和get方法中参数的不同类型

时间:2013-09-28 14:43:18

标签: java generics hashmap

是否有理由使用Generics定义put方法,而get使用Object,为什么get未定义为get(K key)

put(K key, V value)

get(Object key)

1 个答案:

答案 0 :(得分:1)

集合上存在泛型类型,以保持集合的内容一致。即如果你有一个Map<String, String>那么你不想以某种方式在某个地方获得一个Integer。

get方法不会造成这个问题,并且get使用与密钥相等的匹配,而密钥不一定必须是同一个类。因此,一致性问题不需要使它成为通用的,并且在与密钥进行相等匹配时是不可取的。