ホームページ >Java >&#&チュートリアル >Java の実行時に注釈値を別のクラスで読み取ることはできますか?
Java でのアノテーション値の取得
Java アノテーションは、コード要素に関するメタデータを提供する便利な方法を提供します。特定のシナリオでは、実行時にこれらのアノテーションの値にアクセスする必要がある場合があります。特に次のような疑問が生じます:
ランタイム保持を持つアノテーションは Java の別のクラスで読み取ることができますか?
アノテーションに次のアノテーションが付けられている場合、答えは「はい」です。 @Retention(RetentionPolicy.RUNTIME)。これは、アノテーションがコンパイルを超えて実行時に利用可能である必要があることを示しています。
次のコード スニペットを考えてみましょう:
<code class="java">@Column(columnName="firstname") private String firstName; @Column(columnName="lastname") private String lastName;</code>
別のクラスでアノテーション値を取得するには、リフレクションを使用できます。
<code class="java">for (Field f : MyClass.class.getFields()) { Column column = f.getAnnotation(Column.class); if (column != null) { System.out.println(column.columnName()); } }</code>
プライベート フィールドにアクセスする必要がある場合は、getDeclaredFields():
<code class="java">for (Field f : MyClass.class.getDeclaredFields()) { Column column = f.getAnnotation(Column.class); if (column != null) { System.out.println(column.columnName()); } }</code>
このコードは MyClass のフィールドをループし、各フィールドの @Column アノテーションをチェックします。注釈が見つかった場合は、columnName 属性の値を出力します。
以上がJava の実行時に注釈値を別のクラスで読み取ることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。