Javaでは、方法の注釈を取得するにはどうすればよいですか。
Javaのリフレクションを利用すると、メソッドの注釈を取得できます。一般的な方法は次のとおりです。
- クラス
- ネイティブに日本語で言い換えると、「メソッドを取得する」
- getDeclaredMethod
- メソッドを取得する
- getメソッドを取得
Class<?> clazz = MyClass.class;
Method method = clazz.getDeclaredMethod("myMethod");
- ネイティブな日本語として文章を言い換えてください。1つのオプションのみ必要です。方法
- アノテーション取得
- アノテーションを取得する
- 注釈を取得する
- ご希望でしたら、日本語で言い換えてみることもできますが、いかがでしょうか?
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);
- 最後に、アノテーションオブジェクトのメソッドによってアノテーションの属性値を取得できる。
String value = annotation.value();
完全なサンプルコードは下記の通りです。
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface MyAnnotation {
String value();
}
class MyClass {
@MyAnnotation("Hello")
public void myMethod() {
// 方法体
}
}
public class Main {
public static void main(String[] args) throws NoSuchMethodException {
Class<?> clazz = MyClass.class;
Method method = clazz.getDeclaredMethod("myMethod");
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);
String value = annotation.value();
System.out.println(value); // 输出:Hello
}
}
実行時にリフレクションを用いてアノテーションを取得するには、注釈の保持ポリシーが RetentionPolicy.RUNTIME に設定されている必要があります。