やる気がストロングZERO

やる気のストロングスタイル

【Java】annotationの定義方法と使い方

参考)独習Java

定義

package com.example.annotation;

import java.lang.annotation.*;

@Documented
@Retention(RetentionPolicy.RUNTIME) // どの時点まで情報を保持するか決める
@Target(ElementType.TYPE)           // このアノテーションを付ける対象を決める
public @interface ClassInfo {
    String value() default "";
    String version() default "";
    String description() default "";
}

使い方 リフレクションを使って情報を取り出す

@ClassInfo(version = "2.1", description = "アノテーションの動作テスト")
public class App
{
    public static void main( String[] args ) throws ClassNotFoundException
    {
        var clazz = Class.forName("com.example.annotation.App");
        var info = (ClassInfo) clazz.getAnnotation(ClassInfo.class);
        System.out.println("バージョン:" + (info.value().equals("") ? info.version() : info.value()));
        System.out.println("説明:" + info.description());
    }
}