我有一个像这样的方法签名
public <T extends SomeClass> T[] findAll(Class<T> oClass, String condition)
但我不确定如何创建 T[]
从 Class<T>
输入.我试过使用 Collection<T>
但我不能投 (T[]) collection.toArray()
和 Array.newInstance(Class<?>, int)
已经要求一个数组类(即 T[]
),这是没有用的和多余的。
另外,很明显,new T[n]
不起作用。
我认为这很简单,但我现在对解决方案感到 NumPy :)
谢谢。
最佳答案
newInstance
不要求数组类,它要求组件类型。它可以正常工作,尽管存在未经检查的强制转换和通用数组的常见问题。
T[] myArr = (T[]) Array.newInstance(oClass, length);
但为什么要混合数组和泛型呢?它只会导致头痛。使用 Collections API 中的内容,例如 List
。
关于java - 泛型类到相同泛型类型的泛型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5626867/