「Java」Field.getAnnotationメソッドでアノテーションを呼び出す
1.アノテーションの定義
書式
@interface アノテーション名
使用例
package com.arkgame.study.tm; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; //アノテーションの定義 @Retention(RetentionPolicy.RUNTIME) @interface TestAnnotation { //関数nameの定義 public String name(); //関数valueの定義 public String value(); }
2.アノテーションを利用
書式
@アノテーション名(name = “yamada", value = “tokyo")
public 変数の型 変数名
使用例
package com.arkgame.study.tm; public class UserInfo { //アノテーションの利用 @TestAnnotation(name = "yamada", value = "tokyo") public String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }
3.動作確認クラス
書式
Field field =クラス名.class.getField(変数名)
使用例
package com.arkgame.study.tm; import java.lang.annotation.Annotation; import java.lang.reflect.Field; public class AnnotationDemo { public static void main(String[] args) throws NoSuchFieldException, SecurityException { //UserInfoクラスのフィールドを設定 Field field = UserInfo.class.getField("username"); //TestAnnotaionアノテーションを呼び出す Annotation anno = field.getAnnotation(TestAnnotation.class); //演算子instanceofを利用 if (anno instanceof TestAnnotation) { TestAnnotation ta = (TestAnnotation) anno; //アノテーションのnameとvalueを出力 System.out.println("name: " + ta.name()); System.out.println("value: " + ta.value()); } } }
実行結果
name: yamada value: tokyo