java - 如何将泛型 (T) 的 ArrayList 转换为直接数组?

标签 java generics arraylist

第一次使用泛型。

我已经成功创建了一个通用对象的 ArrayList,我想将其转换为常规数组 T[] .

通常情况下,这类似于

String[] x = (String[])myStrings.toArray(new String[0])

但是,在本例中,将 String 替换为 T不起作用。即

return (T[]) ret.toArray(T[0]);

这是我的方法的完整代码,但不确定它是否相关: https://puu.sh/AzxKD/f525bdbe77.png

最佳答案

您无法使用 new T[size] 为泛型类型变量 T 创建数组。 Java 不支持。

您可以将 Object[] 数组强制转换为 T[],对于大多数用途来说这没问题。

在这种情况下,这将是:

return (T[]) ret.toArray();

关于java - 如何将泛型 (T) 的 ArrayList 转换为直接数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50703004/

相关文章:

java - 你能制作组合框方法吗

C# 泛型 : Inserting T as the where T : IComparable<T> interface conflict

java - 仅允许实现其他接口(interface)的对象的通用接口(interface)

java - 在 Java 中存储不同类型对象的有序列表的最佳方法?

java - 如何从通用数组列表中找到最小值?

java - EntityManagerFactory 关闭,Hibernate

java - Android - 获取自定义字符串

java - 表达非法开始 NB

java - 为什么 Java 将 ArrayList 增加了 3/2?

java - 在不关闭套接字的情况下使用 java.nio.* 中断 InputStream#read() 的任何方法?