Yan*_*hon 3 java arrays generics
我有一个方法签名就像
public <T extends SomeClass> T[] findAll(Class<T> oClass, String condition)
Run Code Online (Sandbox Code Playgroud)
但我不确定如何从中创建该T[]类型Class<T>.我已经尝试过使用Collection<T>但是我无法强制转换(T[]) collection.toArray()并Array.newInstance(Class<?>, int)要求一个数组类(即T[]),这是没有用的,也是多余的.
另外,显而易见的是,new T[n]它不起作用.
我认为这很容易,但我现在麻木了解决方案:)
谢谢.
newInstance不要求数组类,它要求组件类型.尽管未经检查的强制转换和通用数组存在常见问题,但它仍然可以正常工作.
T[] myArr = (T[]) Array.newInstance(oClass, length);
Run Code Online (Sandbox Code Playgroud)
但是为什么要混合数组和泛型呢?这只会导致头痛.使用Collections API中的内容,例如List.
| 归档时间: |
|
| 查看次数: |
429 次 |
| 最近记录: |