为什么即使Integer扩展了Number>,我也不能向该类型的列表添加整数
List<? extends Number> numList = new ArrayList<Integer>();
Integer f = 12;
numList.add(f);
最佳答案
看看关于PECS原理的this post。相关报价:
您想将东西添加到集合中。
然后列表是使用者,因此您应该使用Collection<? super Thing>
。
简而言之,您将要使用super
而不是extends
:
List<? super Number> numList = new ArrayList<>();
Integer f = 12;
numList.add(f);