【发布时间】:2014-09-25 00:26:03
【问题描述】:
在尝试了解 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(...) 什么是可接受的参数值?
【问题讨论】: