首頁 > Java > java教程 > Java 運行時可以在不同的類別中讀取註解值嗎?

Java 運行時可以在不同的類別中讀取註解值嗎?

Linda Hamilton
發布: 2024-10-26 06:15:02
原創
758 人瀏覽過

Can Annotation Values Be Read in a Different Class at Runtime in 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板