我在将我的arraylist作为参数发送给通用方法时遇到了麻烦。知道我在这里做错了什么吗?
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/