【发布时间】:2013-09-24 00:54:10
【问题描述】:
考虑
List<? super Integer> lst= new ArrayList<Number>();
lst.add(new Integer(3)); //ok- why?? I expected compile error "expected add(int, Object), found add(int,CAP#1)"
lst.get(0); //ok
和
List <? extends Number> nums= new ArrayList<Integer>();
lst.add(new Integer(3));//Compile error- expected add(int, Object), found add(int,CAP#1)
在编译状态下,我们不知道<? extends Number> 的类型并且有编译错误。我们知道编译状态下<? super Integer> 的类型吗?为什么?
【问题讨论】: