java - 泛型类到相同泛型类型的泛型数组

标签 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[] ),这是没有用的和多余的。

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

我认为这很简单,但我现在对解决方案感到 NumPy :)

谢谢。

最佳答案

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

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

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

关于java - 泛型类到相同泛型类型的泛型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5626867/

相关文章:

java - 如何创建比较器

c# - 可以传入通用实体并访问公共(public)属性吗?

java - 如何使用 Java 参数在属性文件中构建值

java - Disruptor - 未调用 EventHandlers

java - 扫描数组中可被 3 整除的最长子数组的长度

Javascript array.find() 回调将对象覆盖为全局数组

java - 在 JTextPane 中查找删除的文本

java - 从文本文件中线性搜索字符串数组中的单词

python - 将动态数字数组 reshape 为固定大小

c++-cli - 如何在 C++/CLI 中检查泛型类型?