Java通配符和generics? 超级T和? 延伸T.
当处理通配符,如设置/添加通用项目到某个容器时,是否建议使用这样的东西?
void add(List someList,someitem){ someList.add(someItem); }
当检索项目时,建议使用这样的东西
void f1(List obj, T item) { obj.add(item); }
这背后的原理是什么? 我什么时候才能知道我是否应该使用它?
你应该看一下PECS原理的解释
什么是PECS(制作人扩展消费者超级)?
简而言之,当您想要从对象获取信息时,请确保使用带外卡的扩展。
当你想把信息放到一个对象中时,一定要使用super和wild card