将一个通用列表转换为数组

21 浏览
0 Comments

将一个通用列表转换为数组

我已经搜索了这个问题,但不幸的是,我没有得到正确的答案。

class Helper {

public static T[] toArray(List list) {

T[] array = (T[]) new Object[list.size()];

for (int i = 0; i < list.size(); i++) {

array[i] = list.get(i);

}

return array;

}

}

测试一下:

public static void main(String[] args) {

List list = new ArrayList();

list.add("abc");

String[] array = toArray(list);

System.out.println(array);

}

但是会抛出一个错误:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

at test.Helper.main(Helper.java:30)

如何解决这个问题?


更新

我想要这个方法,因为有时候我的代码中类型太长了:

newEntries.toArray(new IClasspathEntry[0])

我希望能够调用:

toArray(newEntries)


最后

似乎不可能创建这样的方法,非常感谢大家的帮助!

0