为什么即使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);

08-16 22:06