Annotationswerte in Java abrufen
Java-Annotationen bieten eine praktische Möglichkeit, Metadaten zu Codeelementen bereitzustellen. In bestimmten Szenarien müssen Sie möglicherweise zur Laufzeit auf die Werte dieser Anmerkungen zugreifen. Insbesondere stellt sich die Frage:
Können Annotationen mit Laufzeitaufbewahrung in einer anderen Klasse in Java gelesen werden?
Die Antwort lautet „Ja“, sofern die Annotation mit annotiert ist @Retention(RetentionPolicy.RUNTIME). Dies weist darauf hin, dass die Annotation zur Laufzeit und nach der Kompilierung verfügbar sein sollte.
Bedenken Sie den folgenden Codeausschnitt:
<code class="java">@Column(columnName="firstname") private String firstName; @Column(columnName="lastname") private String lastName;</code>
Um die Annotationswerte in einer anderen Klasse abzurufen, können Sie Reflection verwenden:
<code class="java">for (Field f : MyClass.class.getFields()) { Column column = f.getAnnotation(Column.class); if (column != null) { System.out.println(column.columnName()); } }</code>
Wenn Sie auf private Felder zugreifen müssen, können Sie getDeclaredFields() verwenden:
<code class="java">for (Field f : MyClass.class.getDeclaredFields()) { Column column = f.getAnnotation(Column.class); if (column != null) { System.out.println(column.columnName()); } }</code>
Dieser Code durchläuft die Felder von MyClass und prüft jedes Feld auf @Column-Anmerkungen. Wenn eine Anmerkung gefunden wird, wird der Wert des Attributs „columnName“ ausgegeben.
Das obige ist der detaillierte Inhalt vonKönnen Anmerkungswerte zur Laufzeit in Java in einer anderen Klasse gelesen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!