【发布时间】:2012-06-20 02:30:45
【问题描述】:
countList 方法出现编译时错误。
public static void countList( List<? extends Number> list, int count ){
for( int i = 0; i < count; i++ ){
list.set(i, i-1);
}
}
public static void clearList( List<?extends Number> list){
list.clear();
}
它说: List 类型中的方法 set(int, capture#2-of ? extends Number) 不适用于参数 (int, int)
这个错误信息是什么意思?为什么我不能设置列表中的元素?为什么可以清除列表?
【问题讨论】:
-
我认为你需要一个 Integer 而不是 int
-
@Fido 我把它改成 list.set(i, new Integer(i-1));它不起作用
-
Java 中的泛型即使在多次阅读泛型指南之后仍然令人困惑,我想您可能想阅读以下内容:docs.oracle.com/javase/tutorial/java/generics/inheritance.htmldocs.oracle.com/javase/tutorial/java/generics/subtyping.html