相同泛型类型的泛型数组的泛型类

时间:2011-04-11 20:03:26

标签: java arrays generics

我有像

这样的方法签名
public <T extends SomeClass> T[] findAll(Class<T> oClass, String condition)

但我不确定如何从T[]创建Class<T>类型。我已尝试使用Collection<T>,但我无法强制转换(T[]) collection.toArray()Array.newInstance(Class<?>, int)请求数组类(即T[]),这是没用的,也是多余的。< / p>

另外,很明显,new T[n]不起作用。

我认为这很容易,但我现在对于解决方案麻木了:)

感谢。

1 个答案:

答案 0 :(得分:5)

newInstance不要求数组类,它要求组件类型。虽然未经检查的强制转换和通用数组存在常见问题,但它可以正常工作。

T[]  myArr = (T[]) Array.newInstance(oClass, length);

但为什么要混合数组和泛型?这只会导致头痛。使用Collections API中的内容,例如List