在下面的 Java 代码中,我创建了一个 list nums
。我可以在声明期间分配另一个列表。但不能添加新项目,除了null
. 那么,这是否意味着nums
只读?为什么?是否可以在该列表中添加新项目?
List<Integer> ints = new ArrayList<Integer>();
ints.add(1);
ints.add(2);
List<? extends Number> nums = ints;
nums.add(3.14); //Generates error
nums.addAll(ints); //Generates error
nums.add(null); //works
System.out.println(nums.get(0)); //works
我已经通过这个链接。我无法得到确切的理由。