1. ホーム
  2. java

[解決済み] Javaでリフレクションを使用してジェネリックパラメータの型を取得する

2022-04-26 01:18:43

質問

ジェネリックパラメータの型を取得することは可能ですか?

一例です。

public final class Voodoo {
    public static void chill(List<?> aListWithTypeSpiderMan) {
        // Here I'd like to get the Class-Object 'SpiderMan'
        Class typeOfTheList = ???;
    }

    public static void main(String... args) {
        chill(new ArrayList<SpiderMan>());
    }
}

解決方法は?

以前、私が偶然見つけたある構成は、次のようなものでした。

Class<T> persistentClass = (Class<T>)
   ((ParameterizedType)getClass().getGenericSuperclass())
      .getActualTypeArguments()[0];

というわけで、いくつかの反射マジックがあるようですが、残念ながら私には完全には理解できません...。すみません。