Java でのアノテーション値へのアクセス
アノテーションは、クラス、メソッド、およびフィールドにメタデータを追加するための Java の強力なメカニズムです。これらのアノテーションは、実行時にアクセスして使用して、アノテーション付きコードの動作を変更できます。よく発生する質問の 1 つは、別のクラスでアノテーションの値を読み取ることができるかどうかです。
この質問に対する答えは「はい」ですが、それはアノテーションの保持ポリシーによって異なります。注釈には、次の 3 つの保持ポリシーのいずれかを設定できます。
別のクラスのアノテーションの値を読み取るには、アノテーションにランタイム保持ポリシーが必要です。実行時保持ポリシーを指定するには、@Retention アノテーションの後に RetentionPolicy 列挙型を使用します:
@Retention(RetentionPolicy.RUNTIME) @interface Column { String columnName(); }
アノテーションに実行時保持ポリシーがあると、リフレクションを使用して別のクラスのその値にアクセスできます:
for (Field f : MyClass.class.getFields()) { Column column = f.getAnnotation(Column.class); if (column != null) { System.out.println(column.columnName()); } }
プライベートフィールドにアクセスするには、getFields():
for (Field f : MyClass.class.getDeclaredFields()) { Column column = f.getAnnotation(Column.class); if (column != null) { System.out.println(column.columnName()); } }
以上がJava の別のクラスのアノテーション値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。