我上网查了一下,貌似是这么个意思:
ArrayList<? extends Object> aList = new ArrayList<String>();
不可以向aList中添加任何元素,因为不能保证aList中真正保存什么类型的对象。aList中还可以保存Integer类型呢,所以aList中不能添加元素。
不能添加元素,要这玩意干啥呢?
是为了向外读数据,比如,一列表中充满了数据,从中向外读数据就是很有用的比如从List<Integer>列表中把数据读出来,复制到List<Number>中。下面是个小例子,- Collection<Integer> aCol = new ArrayList<Integer>();
- aCol.add(1);
- aCol.add(2);
- aCol.add(3);
- List<? extends Number> srcList = new ArrayList<Integer>(aCol);
- System.out.println(srcList);// 这里输出[1,2,3]
- ArrayList<Number> destList = new ArrayList<Number>();
- destList.add(5);
- destList.add(6);
- destList.add(7);
- destList.add(8);
- Collections.copy(destList, srcList);
- System.out.println(destList);
复制代码 |