import java.util.ArrayList;
import java.util.List;
import java.util.Collection;
public class LowerBoundedWildCard {
public static void display(Collection<? super Integer> ints, int n) {
for (int i = 0; i < n; i++) {
ints.add(i);
}
}
public static void main(String[] args) {
List<Number> numList = new ArrayList<Number>();
display(numList, 5); // Error
numList.add(19.43); // Error
}
}
List<Integer>
比前者List<? super Integer>
只匹配 Integer 类型的列表,而后者匹配作为 Integer 超类型的任何类型的列表。Number 是 Integer 和 double 的超类型,那么为什么会出现这个错误?
请帮我解决上述问题。