在 Java 中存取註解值
註解是 Java 中向類別、方法和欄位添加元資料的強大機制。可以在執行時間存取和使用這些註解來修改註解程式碼的行為。出現的一個常見問題是是否可以讀取不同類別中註釋的值。
這個問題的答案是肯定的,但這取決於註解的保留策略。註解可以有以下三種保留策略之一:
要讀取不同類別中註解的值,註解必須具有執行時間保留策略。若要指定執行時間保留策略,請使用@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()); } }
注意,要存取私有字段,需要使用getDeclaredFields() 方法而不是getFields():
for (Field f : MyClass.class.getDeclaredFields()) { Column column = f.getAnnotation(Column.class); if (column != null) { System.out.println(column.columnName()); } }
以上是如何在 Java 中存取不同類別中的註解值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!