特定のアノテーションがついたクラスをJavaでロードする方法

Javaのリフレクション機能を使えば、特定の注釈が付けられたクラスをロードすることができます。

まず、Class.forName()メソッドを使用してクラスを読み込む必要があります。このメソッドは、クラスの完全修飾名をパラメータとして受け取り、対応するClassオブジェクトを返します。たとえば、com.example.MyClassという名前のクラスを読み込むには、次のコードを使用できます。

Class<?> clazz = Class.forName("com.example.MyClass");

続いて、getAnnotationsByType()メソッドを使用して、特定の注釈の配列を取得できます。このメソッドは、パラメーターとして注釈のClassオブジェクトを受け取り、その注釈でフラグが立てられたすべてのクラスの配列を返します。たとえば、MyAnnotation注釈でフラグが立てられたすべてのクラスを取得するには、次のコードを使用できます。

MyAnnotation[] annotations = clazz.getAnnotationsByType(MyAnnotation.class);

最後に、注釈が付けられた各クラスに対して詳細な操作を実行するためにこの配列を反復処理できます。例えば、MyAnnotation アノテーションが付けられたすべてのクラスのクラス名をプリントアウトするには、次のコードを使用できます。

for (MyAnnotation annotation : annotations) {
    System.out.println(annotation.getClass().getName());
}

なお、上記コードの MyAnnotation はカスタムアノテーションなので、実際にはロード対象の特定アノテーションのクラスに置換える必要があります。

bannerAds