我正在尝试编写一个适用于所有实现“可迭代”接口(interface)的类的通用打印方法
public class List<T> {
public static <T extends Iterable<T>> void print(T[] list){
for (Object element : list){
System.out.println(element);
}
}
public static void main(String[] args){
ArrayList<Integer> l = new ArrayList();
l.add(1);
l.add(5);
l.add(3);
l.add(2);
print(l);
}
}
但我收到错误消息“类型列表中的方法 print(T[]) 不适用于参数 (ArrayList)”
最佳答案
您的参数是T[]
.这是一个扩展 Iterable
类型的数组.你只需要 T
.但是您还需要一个类型变量作为 Iterable
中的类型参数。 .你需要
public static <T extends Iterable<E>, E> void print(T list) {
你需要这个是因为你不想要 Iterable<ArrayList>
这就是您当前实现中的内容。
关于java - 通用列表打印方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20957487/