第一次使用泛型。
我已经成功创建了一个通用对象的 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/