我在列表中使用通配符和下界泛型,但编译器抛出错误.
码:
int intStart = 0;
Number num = new Integer(2);
List<? super Integer> listOfNumbers = new ArrayList<>();
listOfNumbers.add(intStart);
listOfNumbers.add(num); //throws compiler error
Run Code Online (Sandbox Code Playgroud)
错误:
类型List中的方法add(capture#8-of?super Integer)不适用于参数(Number)
有了List<? super Integer>,我应该被允许添加任何类型的对象Integer或其超类型,例如数字或对象.我已经经历了一些SO讨论,但无法找到为什么我应该犯错误.