相关疑难解决方法(0)

为什么Java Collections不删除泛型方法?

为什么Collection.remove(Object o)不是通用的?

似乎Collection<E>可能有boolean remove(E o);

然后,当您意外地尝试Set<String>从a中删除(例如)而不是每个单独的String时Collection<String>,这将是编译时错误,而不是稍后的调试问题.

java generics api collections

140
推荐指数
5
解决办法
2万
查看次数

列出<E> .contains(对象),为什么?

可能重复:
Map.get(Object key)不是(完全)泛型的
原因是什么我们为什么要包含(Object o)而不是contains(E e)?

正如大家都可以看到的那样,类型为E的模板化java.util.List的contains方法没有模板化:它Object取而代之.有谁知道为什么?
在什么情况下会List<String>返回真实的myList.contains(new OtherNonString())?如果我没有弄错,永远不会,除非它被比较的对象具有类型E作为祖先(在我的字符串示例中由于String是最终的不可能)

是否只是为了保持与仿制前版本的向后兼容性?我错过了一个有意义的用例吗?如果它只是为了向后兼容,为什么不弃用contains(Object)并创建一个contains(E)

编辑:
我之前的一些子问题已得到解答.作为参考,也请检查这个问题

java generics

7
推荐指数
1
解决办法
1939
查看次数

标签 统计

generics ×2

java ×2

api ×1

collections ×1