java - 参数化类型和泛型类

标签 java generics 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

您还可以转换 ArrayListT[]但它的语法在 java 中有点烦人,除非你真的需要一个数组,否则我不推荐。

关于java - 参数化类型和泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23226512/

相关文章:

java - 如何在 JSP 页面中检索并显示数据库中的图像?

java - 为什么在 Java 中将字符串添加到 ArrayList 需要强制转换或使用泛型?

ios - 将泛型 AnyObject 向下转换为协议(protocol)关联类型 Self.Model

java - 在数组列表中添加用户设计的对象时出错

java - 当我调用 repaint() 方法时,屏幕上没有显示任何内容

javascript - 使用 iText 在 pdf 的某些位置上进行 Java Stamp

java - 将字符串转换为 Uri

java - 这里为什么要用clone?

java - 设置通用类类型

java - 解析使用空格作为分隔符的文件 -java.lang. (我不明白)