「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

 

Java

Posted by arkgame