我可以从Class<T>
获取Class<T[]>
吗?
public static <T> void doSometing(final Class<T[]> arrayType) {
final Class<T> elementType; // = @@?
}
或者,我可以从Class<T[]>
获取Class<T>
吗?
答案 0 :(得分:5)
您可以使用Class.getComponentType()
,虽然该方法无法为您提供通用类型安全性,因此您需要执行未经检查的强制转换才能获得Class<T>
:
public static <T> void doSomething(final Class<T[]> arrayType) {
@SuppressWarnings("unchecked")
final Class<T> componentType = (Class<T>)arrayType.getComponentType();
//etc.
}