ホームページ >Java >&#&チュートリアル >リフレクションは Java の汎用パラメーターの型を明らかにできますか?

リフレクションは Java の汎用パラメーターの型を明らかにできますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-22 11:27:11876ブラウズ

Can Reflection Reveal Generic Parameter Types in Java?

Java でのリフレクションによるジェネリック パラメーターの型の取得

クエリ: リフレクション技術を使用してジェネリック パラメーターの型を確認できますか?

次の点を考慮してください例:

public final class Voodoo {
    public static void chill(List<? extends SpiderMan> aListWithTypeSpiderMan) {
        // Obtain the Class object for 'SpiderMan'
        Class typeOfTheList = ???;
    }

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

解決策:

ジェネリック パラメータ タイプを抽出するための有望なアプローチは次のとおりです:

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

このやや難解なリフレクション ベースの呪文は次のようになります。望ましい結果が得られますが、その複雑さをより深く理解することは今のところ私にはできません。

以上がリフレクションは Java の汎用パラメーターの型を明らかにできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。