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 のスーパータイプですが、なぜこのエラーが発生するのですか??
上記の問題を解決するのを手伝ってください。