在 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中文網其他相關文章!