我有像
这样的方法签名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]
不起作用。
我认为这很容易,但我现在对于解决方案麻木了:)
感谢。
答案 0 :(得分:5)
newInstance
不要求数组类,它要求组件类型。虽然未经检查的强制转换和通用数组存在常见问题,但它可以正常工作。
T[] myArr = (T[]) Array.newInstance(oClass, length);
但为什么要混合数组和泛型?这只会导致头痛。使用Collections API中的内容,例如List
。