maximum (<? extends T>, int, int) in the type generics classname is not applicable for the argument (List<Integer>, int ,int).
我该如何解决此错误
public class Generics_oracle_question {
public static void main(String args[]) {
List<Integer>[] integer = new List[5];
integer[0].add(6);
integer[1].add(3);
integer[2].add(9);
System.out.println(maximum(integer,0,2));
}
public static<T extends Comparable> T maximum(List<? extends T> elements,int beg, int end) {
T max = elements.get(beg);
for(; beg <= end; beg++) {
if(max.compareTo(elements.get(beg)) < 0) {
max = elements.get(beg);
}
}
return max;
}
}
答案 0 :(得分:2)
问题在于您要将列表数组传递给采用列表的方法。
这是您实例化和填充List<Integer>
的方式:
List<Integer> integer = new ArrayList<>();
integer.add(6);
integer.add(3);
integer.add(9);
现在,您的代码将编译并运行,正确返回9(demo)。