Heim  >  Artikel  >  Java  >  Wie rufe ich Werte aus Anmerkungen in Java-Klassen ab?

Wie rufe ich Werte aus Anmerkungen in Java-Klassen ab?

Susan Sarandon
Susan SarandonOriginal
2024-10-27 01:04:30538Durchsuche

How to Retrieve Values from Annotations in Java Classes?

Abrufen von Annotationsfeldwerten in Java-Klassen

In der Java-Programmierung sind Annotationen Metadaten, die an Klassen, Methoden oder Felder angehängt sind. Diese Anmerkungen können zusätzliche Informationen über die Struktur oder das Verhalten des Codes liefern. Während diese Anmerkungen normalerweise verwendet werden, um bestimmte Funktionen auszulösen oder Hinweise für Kompilierungstools bereitzustellen, kann es Fälle geben, in denen Sie die in diesen Anmerkungen gespeicherten Werte lesen müssen. Dieser Artikel zeigt, wie Sie dieses Ziel erreichen können.

Betrachten Sie das folgende Beispiel:

<code class="java">@Column(columnName="firstname")
private String firstName;

@Column(columnName="lastname")
private String lastName;</code>

In diesem Code werden die @Column-Annotationen verwendet, um die Spaltennamen anzugeben, die den entsprechenden Feldern zugeordnet sind. Lassen Sie uns nun auf die aufgeworfene Frage eingehen:

Können Sie den Wert der @Column-Annotation in einer anderen Klasse lesen?

Die Antwort ist bejahend. Diese Funktionalität hängt jedoch von der Aufbewahrungsrichtlinie der Anmerkung ab. Die @Column-Annotation muss RetentionPolicy.RUNTIME angeben, um den Zugriff auf ihre Werte über die Kompilierungszeit hinaus zu ermöglichen. Ändern Sie die @Column-Annotation wie folgt:

<code class="java">@Retention(RetentionPolicy.RUNTIME)
@interface Column {
    String columnName();
}</code>

Wenn die Laufzeitaufbewahrungsrichtlinie vorhanden ist, können Sie die Annotationswerte mithilfe von Reflektion abrufen. Hier ist ein Beispiel:

<code class="java">for (Field f : MyClass.class.getFields()) {
   Column column = f.getAnnotation(Column.class);
   if (column != null)
       System.out.println(column.columnName());
}</code>

Indem Sie die Felder der MyClass-Klasse durchlaufen und die Anmerkungen jedes Felds untersuchen, können Sie die Werte der @Column-Anmerkungen extrahieren.

Hinweis: Wenn Ihre Felder als privat deklariert sind, verwenden Sie getDeclaredFields() anstelle von getFields().

Diese Methode bietet eine Möglichkeit, auf die in Anmerkungen enthaltenen Informationen zuzugreifen und diese zu verarbeiten, wodurch die Flexibilität und Erweiterbarkeit Ihres Codes erweitert wird.

Das obige ist der detaillierte Inhalt vonWie rufe ich Werte aus Anmerkungen in Java-Klassen ab?. 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