1

在处理通配符(例如将通用项目设置/添加到某个容器)时,是否建议使用类似的东西?

void add(List<?  super T> someList,someitem){
    someList.add(someItem);
}

并且在检索项目时建议使用类似这样的东西

 <T> void f1(List<? extends T> obj, T item) {
     obj.add(item);
}

这背后的原理是什么?我什么时候知道我是否应该使用它?

4

1 回答 1

2

你应该看看PECS原理的解释

什么是PECS(Producer Extends Consumer Super)?

简而言之,当您想从对象中获取信息时,请确保使用带通配符的扩展。

当你想将信息放入对象时,请确保使用 super 和通配符

于 2012-10-03T12:53:16.300 回答