我在将我的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/

10-10 07:12