Java泛型:为什么Map.get()忽略类型?

在Java中,Map接口定义为

public interface Map<K,V> {

...

V get(Object key);

...

}

为什么不?

V get(K key);

我刚遇到一个讨厌的错误,因为使用了错误的类型密钥。我认为泛型的目的是在编译期间及早捕获类型错误。这会达到目的吗?

回答:

凯文·布罗里恩(Kevin

Bourrillion)不久前就在博客上发表了文章。摘要:

一致地,除非有必要防止集合损坏,否则Java Collections Framework(以及Google Collections

Library)的方法从不限制其参数类型。

我个人不喜欢这种方法,但是考虑到也采用了方差方法,这确实有意义。

以上是 Java泛型:为什么Map.get()忽略类型? 的全部内容, 来源链接: utcz.com/qa/406833.html

回到顶部