如何从数组类型类中获取元素类型类?

时间:2013-06-20 02:59:34

标签: java arrays class generics

我可以从Class<T>获取Class<T[]>吗?

public static <T> void doSometing(final Class<T[]> arrayType) {

    final Class<T> elementType; // = @@?
}

或者,我可以从Class<T[]>获取Class<T>吗?

1 个答案:

答案 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.
}

相反,请参阅此问题:Obtaining the array Class of a component type