「Java8」クラスにアノテーションを付けるサンプル
環境
JDK1.8
Eclipse2019
1.アノテーションインターフェースの定義
書式
アノテーションの範囲
@Target({ ElementType.TYPE, ElementType.METHOD })
サンプルコード
package com.arkgame.study; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; //アノテーションの範囲 @Retention(RetentionPolicy.RUNTIME) //アノテーションを適用する場所 クラスとメソッド @Target({ ElementType.TYPE, ElementType.METHOD }) //アノテーションの定義 public @interface AnnoUser { String sno() default "1001"; String user(); }
2.クラスにアノテーションを付けます
public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
書式
@アノテーション名(sno = “値1", user = “値2")
class クラス名 {処理コード}
サンプルコード
package com.arkgame.study; //クラスUserにアノテーション@AnnoUserを付ける @AnnoUser(sno = "2002", user = "山田太郎") class User { public void funA() { System.out.println("UserクラスにアノテーションAnnoUserを付けます"); } } public class AnnoDemo { public static void main(String[] args) throws Exception { // リフレクションを使用してアノテーションの値を取得 Class<?> ca = Class.forName("com.arkgame.study.User"); // getAnnotationメソッドでアノテーションを取得 AnnoUser au = (AnnoUser) ca.getAnnotation(AnnoUser.class); System.out.println("ユーザー名: " + au.user()); System.out.println("番号: " + au.sno()); } }
3.実行結果
ユーザー名: 山田太郎 番号: 2002