参考)独習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()); } }