我在将数组列表作为参数发送到通用方法时遇到问题。知道我在这里做错了什么吗?
ArrayList<Integer> list50k = new ArrayList<>();
list50k.add(1);
list50k.add(5);
list50k.add(8);
list50k.add(7);
selectionSort(list50k); // error is in this line
然后我尝试将数组发送到该方法并收到错误。 方法如下:
public static <T extends Comparable<T>> void selectionSort(T[] list){...}
最佳答案
问题是 ArrayList<T>
不是数组,这意味着它无法转换为 T[]
。
您的方法签名可能是 selectionSort(List<T>)
如果您想通过ArrayList
。
您还可以转换 ArrayList
到 T[]
但它的语法在 java 中有点烦人,除非你真的需要一个数组,否则我不推荐。
关于java - 参数化类型和泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23226512/