在处理通配符(例如将通用项目设置/添加到某个容器)时,是否建议使用类似的东西?
void add(List<? super T> someList,someitem){
someList.add(someItem);
}
并且在检索项目时建议使用类似这样的东西
<T> void f1(List<? extends T> obj, T item) {
obj.add(item);
}
这背后的原理是什么?我什么时候知道我是否应该使用它?
你应该看看PECS原理的解释
什么是PECS(Producer Extends Consumer Super)?
简而言之,当您想从对象中获取信息时,请确保使用带通配符的扩展。
当你想将信息放入对象时,请确保使用 super 和通配符