是否有理由使用Generics定义put
方法,而get
使用Object,为什么get
未定义为get(K key)
?
put(K key, V value)
和
get(Object key)
答案 0 :(得分:1)
集合上存在泛型类型,以保持集合的内容一致。即如果你有一个Map<String, String>
那么你不想以某种方式在某个地方获得一个Integer。
get方法不会造成这个问题,并且get使用与密钥相等的匹配,而密钥不一定必须是同一个类。因此,一致性问题不需要使它成为通用的,并且在与密钥进行相等匹配时是不可取的。