在处理通配符(如设置/添加通用项目到某个容器)时,建议使用这样的东西吗?
void add(List<? super T> someList,someitem){
someList.add(someItem);
}
当检索项目时,建议使用类似
的内容 <T> void f1(List<? extends T> obj, T item) {
obj.add(item);
}
这背后的原理是什么?我什么时候才能知道我是否应该使用它?
答案 0 :(得分:2)
你应该看一下PECS原理的解释
What is PECS (Producer Extends Consumer Super)?
简而言之,当您想从对象获取信息时,请务必使用带外卡的扩展名。
当你想把信息放入一个物体时,一定要使用super和外卡