在试图了解java泛型类型和外卡的使用,我试过如下:使用带有通配符的java泛型“?” “?”
List<?> li = new ArrayList<Integer>();
List<Integer> li2 = new ArrayList<Integer>();
li2.add(new Integer(6));
li = li2;
以上编译并运行良好。但是,如果我尝试:
li.add(new Integer(5));
我获得以下编译错误(使用Oracle JDeveloper作为IDE):
Error(24,9): cannot find method add(java.lang.Integer)
为什么上面没有编译,但分配li=li2
是好的?另外如果我想打电话给li.add(...)
什么是可接受的参数值?