Heim > Java > javaLernprogramm > 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
Freigeben: 2024-10-26 06:15:02
Original
787 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage