ホームページ >Java >&#&チュートリアル >リフレクションを使用して Java リストのジェネリック型を取得するにはどうすればよいですか?
Java でジェネリック型を操作する場合、ジェネリック型に関連付けられた特定のクラスを取得すると便利です。次の例を考えてみましょう。
List<String> stringList = new ArrayList<String>(); List<Integer> integerList = new ArrayList<Integer>();
このシナリオでは、これらのリストに関連付けられた実際のクラス型、つまり String と Integer にアクセスしたい場合があります。幸いなことに、Java には、リフレクションを使用してこの情報を取得する方法が用意されています。
getDeclaredField メソッドを利用すると、汎用リストを保持するクラスのフィールドにアクセスできます。そこから、フィールドの ParameterizedType を取得し、実際のクラス情報を抽出できます。以下に例を示します。
Field stringListField = testClass.getDeclaredField("stringList"); ParameterizedType stringListType = (ParameterizedType) stringListField.getGenericType(); Class<?> stringListClass = (Class<?>) stringListType.getActualTypeArguments()[0];
このコードは Class
リストがメソッドのスコープ内で定義されている場合、そのジェネリック型を取得する必要はありません。明示的に型を指定します。これは、型情報がメソッドのコンテキスト内ですぐに利用できるためです。
以上がリフレクションを使用して Java リストのジェネリック型を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。