javaリフレクションでインナー クラスを取得する方法
Javaの反射を利用して内部クラスを取得するには、以下の手順に従ってください。
- 外部クラスのClassを取得する:
- Class<?> outerClass = OuterClass.class;
- 内部クラスのClassオブジェクトを取得する:
- // 非静的内部クラス
Class<?> innerClass = outerClass.getDeclaredClasses()[0];// 静的内部クラス
Class<?> innerClass = OuterClass.InnerClass.class; - 内部クラスのClassオブジェクトを取得するには、Class.forName()メソッドを使用します。
- Class<?> innerClass = Class.forName(“com.example.OuterClass$InnerClass”);
ご注意ください:
- 内部クラスのクラスオブジェクト名は、外部クラスのクラス名に「$」記号と内部クラスのクラス名を組み合わせたものになります。
- 非静的内部クラスのClassオブジェクトは外部クラスのClassオブジェクトから取得する必要があるのに対して、静的内部クラスのClassオブジェクトは直接取得できます。
これはJavaのリフレクションを使用して、内部クラスを取得する方法です。