アノテーションを利用する
アノテーションそのものは、単なる名前と型の定義にすぎませんので、指定されたアノテーションに応じてどのような処理を実施するかを決めるのは、呼び出し元の責任です。
アノテーション情報は、Method#getAnnortationメソッドで取得できます。Methodオブジェクトを取得するのは、Class#getMethodメソッドの役割です。(※)
AnnotationSample.java
package com.example.mynavi.object;
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 m = AnnotationSample.class.getMethod("annotationTest");
// Versionアノテーションを取得
Version v = m.getAnnotation(Version.class);
// Versionアノテーションが1.0以上の場合のみメソッドを実行
if (v.value() >= 1.0) {
m.invoke(AnnotationSample.class.newInstance());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
この例であれば、取得したValueアノテーションの値が1.0以上の場合に、アノテーションが付与されたメソッド(ここではannotationTest)を実行します。Methodオブジェクト経由でメソッドを実行するには、invokeメソッドを利用します。






