Javaアノテーションの使い方

アノテーションの使い方

アノテーション自体は単純な名前と型の定義にすぎないため、指定されたアノテーションに応じてどのような処理を行うかを決めるのは呼び出し側の責任である。 アノテーション情報はMethod#getAnnotationメソッドで取得できる。Methodオブジェクトを取得するのはClass#getMethodメソッドの役割である。 1

AnnotationSample.java

package com.devkuma.basic.annotation;

import java.lang.reflect.Method;

public class AnnotationSample {
    @Version(1.0)
    public void annotationTest() {
        System.out.println("Released");
    }

    public static void main(String[] args) {
        try {
            // annotationTestメソッドを取得する。
            Method method = AnnotationSample.class.getMethod("annotationTest");
            // Versionアノテーションを取得する。
            Version version = method.getAnnotation(Version.class);
            // Versionアノテーションが1.0以上の場合に実行する。
            if (version.value() >= 1.0) {
                method.invoke(AnnotationSample.class.getDeclaredConstructor().newInstance());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

実行結果:

Released

この例では、検索されたVersionアノテーションの値が1.0以上の場合に、アノテーションが付与されたメソッド、ここではannotationTestを実行する。Methodオブジェクトを通じてメソッドを実行するには、invokeメソッドを使用する。


  1. このようなクラスやそのメンバーへアクセスするための機能をリフレクションという。 ↩︎