Heim  >  Artikel  >  Java  >  Wie greife ich zur Laufzeit in Java auf Anmerkungswerte zu?

Wie greife ich zur Laufzeit in Java auf Anmerkungswerte zu?

Susan Sarandon
Susan SarandonOriginal
2024-10-26 05:59:30950Durchsuche

How to Access Annotation Values at Runtime in Java?

Zugriff auf Annotationswerte in Java

Java-Annotationen bieten einen Mechanismus zum Hinzufügen von Metadaten zu Codeelementen wie Klassen, Methoden und Feldern. Standardmäßig sind Anmerkungen nur während der Kompilierung verfügbar und werden zur Laufzeit verworfen. Durch Angabe des RetentionPolicy.RUNTIME-Werts in der Retention-Annotation können Sie jedoch Anmerkungen zur Laufzeit beibehalten.

Zugriff auf Annotationswerte aus einer anderen Klasse

Wenn eine Annotation das hat Mit der Aufbewahrungsrichtlinie RetentionPolicy.RUNTIME können Sie die Java-Reflektion verwenden, um deren Wert aus einer anderen Klasse zu lesen. So geht's:

<code class="java">// Import the necessary classes
import java.lang.reflect.Field;
import java.lang.annotation.Annotation;

// Get the class object
Class<?> clazz = MyClass.class;

// Iterate over the fields of the class
for (Field field : clazz.getFields()) {

    // Check if the field has the Column annotation
    Annotation annotation = field.getAnnotation(Column.class);

    // If the annotation exists, read its columnName() value
    if (annotation != null) {
        String columnName = ((Column) annotation).columnName();
        System.out.println("Column Name: " + columnName);
    }
}</code>

Zugriff auf private Felder

Die Methode getFields() ruft nur öffentliche Felder ab. Um auf private Felder zuzugreifen, verwenden Sie stattdessen getDeclaredFields():

<code class="java">for (Field field : clazz.getDeclaredFields()) {

    ...
}</code>

Das obige ist der detaillierte Inhalt vonWie greife ich zur Laufzeit in Java auf Anmerkungswerte zu?. 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