Heim  >  Artikel  >  Java  >  Können Anmerkungswerte zur Laufzeit in Java in einer anderen Klasse gelesen werden?

Können Anmerkungswerte zur Laufzeit in Java in einer anderen Klasse gelesen werden?

Linda Hamilton
Linda HamiltonOriginal
2024-10-26 06:15:02674Durchsuche

Can Annotation Values Be Read in a Different Class at Runtime in Java?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn