当前位置: 代码迷 >> J2SE >> list泛型問題,该如何处理
  详细解决方案

list泛型問題,该如何处理

热度:363   发布时间:2016-04-23 22:52:19.0
list泛型問題
	public void takeList(List<? extends String> list) {
list.add("aaa");
}

第二行報錯
The method add(capture#1-of ? extends String) in the type List<capture#1-of ? extends String> is not applicable for the arguments (String)

這是爲什麽?

------解决方案--------------------
SubFrame sf = new SubFrame();
public void takeList(List<? extends JFrame> list) {
        list.add(sf)
}
class SubFrame extends JFrame {

}
JFrame不是final的,但上面也是错误的
List<? extends T>不是继承于T的所有类的集合,
而是T的某一种子类,是不确定的一种,T可以放进去,但是其子类就不一定了,这个List<? extends T>
根本就不能用add方法
而List<? super T>,是T类的超类,T可以放进去,那么T的超类肯定都可以放进去,这个可以用add方法
  相关解决方案