【问题标题】:How can I get an element type class from an array type class?如何从数组类型类中获取元素类型类?
【发布时间】:2013-06-20 02:59:34
【问题描述】:

我可以从Class<T[]> 得到Class<T> 吗?

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

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

或者,我可以从Class&lt;T&gt; 获得Class&lt;T[]&gt; 吗?

【问题讨论】:

  • 你能解释一下这个用例吗
  • 我回滚了您的更新,因为它最终采用了新问题的形式。

标签: java arrays class generics


【解决方案1】:

您可以使用Class.getComponentType(),尽管该方法无法为您提供泛型类型安全,因此您需要进行未经检查的强制转换以获得Class&lt;T&gt;

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

【讨论】:

猜你喜欢
  • 2018-07-20
  • 2021-02-21
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 2020-07-14
  • 2011-05-07
  • 2020-03-08
  • 2018-10-23
相关资源
最近更新 更多