Heim  >  Artikel  >  Java  >  Was sind Java-Annotationen?

Was sind Java-Annotationen?

青灯夜游
青灯夜游Original
2019-12-26 14:28:055162Durchsuche

Seit der Einführung von Annotationen in Java 5.0 sind sie zu einem sehr wichtigen Bestandteil der Java-Plattform geworden. Während des Entwicklungsprozesses sehen wir häufig Annotationen wie @Override und @Deprecated im Anwendungscode. Was sind also Anmerkungen? Lassen Sie mich es Ihnen unten vorstellen.

Was sind Java-Annotationen?

Was sind Anmerkungen?

Anmerkungen werden auch Metadaten genannt, bei denen es sich um eine Art von Daten handelt, die Daten beschreiben. Anmerkungen sind eine in JDK Version 1.5 eingeführte Funktion. Sie werden zur Erläuterung des Codes verwendet. Sie können Pakete, Klassen, Schnittstellen, Felder, Methodenparameter, lokale Variablen usw. mit Anmerkungen versehen.

Was nützen Anmerkungen?

Offizielle Erklärung:

Annotationen sind eine Reihe von Metadaten, die Daten zur Erklärung des Programmcodes bereitstellen, aber die Anmerkungen sind nicht Teil des interpretierten Codes selbst. Anmerkungen haben keinen direkten Einfluss auf die Ausführungsleistung des Codes.

1. Stellen Sie dem Compiler Informationen zur Verfügung: Der Compiler kann Anmerkungen verwenden, um Fehler und Warnmeldungen zu erkennen

Beispielsweise fordert @Override die Unterklasse auf, die geänderte Methode in der übergeordneten Klasse zu überschreiben

2. Verarbeitung während der Kompilierungsphase: Mithilfe von Softwaretools können Anmerkungsinformationen zum Generieren von Code und HTML-Dokumenten oder zur Durchführung anderer entsprechender Verarbeitungen verwendet werden.

3. Laufzeitverarbeitung: Bestimmte Annotationen können Code-Extraktion akzeptieren, wenn das Programm ausgeführt wird.

Annotationen richten sich hauptsächlich an Compiler und andere Tool-Software. Nach dem Ändern von Mitgliedern wie Klassen; Methoden und Felder werden diese Annotationen nicht von selbst wirksam. Der Entwickler muss entsprechenden Code bereitstellen, um die Annotationsinformationen zu extrahieren und zu verarbeiten. Diese Codes, die das Extrahieren und Verarbeiten von Anmerkungen übernehmen, werden zusammenfassend als APT (Annotation Processing Tool) bezeichnet.

Anmerkungen können in drei Kategorien unterteilt werden:

● Eine Kategorie sind Javas eigene Standardanmerkungen, einschließlich @Override (markiert, um eine bestimmte zu überschreiben). Methode), @Deprecated (zeigt an, dass eine Klasse oder Methode veraltet ist) und @SuppressWarnings (zeigt Warnungen an, die ignoriert werden sollen), prüft der Compiler nach der Verwendung dieser Annotationen.

● Ein Typ sind Meta-Anmerkungen. Meta-Anmerkungen sind Anmerkungen, die zum Definieren von Anmerkungen verwendet werden, einschließlich @Retention (Markierung des Stadiums, in dem die Anmerkung beibehalten wird), @Target (Markierung des Verwendungsbereichs der Anmerkung). ) und @Inherited (Markierung der Annotation), @Documented (gibt an, ob Javadoc-Dokumente generiert werden sollen), @Repeatable.

● Ein Typ sind benutzerdefinierte Anmerkungen, die nach Ihren eigenen Bedürfnissen definiert werden können

Meta-Anmerkungen

Meta-Anmerkungen können mit Anmerkungen versehen werden Anmerkungen Anmerkung oder Meta-Anmerkung ist eine grundlegende Anmerkung, kann aber auf andere Anmerkungen angewendet werden. Um es klarer auszudrücken: Die Anmerkungen, die wir beim Definieren von Anmerkungen verwenden, sind Meta-Anmerkungen.

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Test {
}

Mit Ausnahme des @-Symbols ähnelt eine Anmerkung einer Schnittstelle. Beim Definieren von Anmerkungen sind Metaanmerkungen erforderlich.

Annotationen enthalten normalerweise einige Elemente, die bestimmte Werte darstellen. Annotierte Elemente sehen genauso aus wie Schnittstellenmethoden. Der einzige Unterschied besteht darin, dass Sie einen Standardwert für sie angeben können. Anmerkungen ohne Elemente werden Markierungsanmerkungen genannt, und der obige @Test ist eine Markierungsanmerkung.

Zu den verfügbaren Annotationstypen gehören die folgenden: alle Basistypen, String-, Klassen-, Enum-, Annotation- und Array-Formen der oben genannten Typen. Elemente können keine undefinierten Werte haben, d. h. sie können weder einen Standardwert haben noch den Wert des Elements bereitstellen, wenn Anmerkungen verwendet werden. Und Elemente können null nicht als Standardwert verwenden. Wenn die Annotation nur ein Element enthält und der Name des Elements „value“ ist, können Sie „value=" weglassen, wenn Sie die Annotation verwenden, und den erforderlichen Wert direkt schreiben.

Es gibt 5 Arten von Meta-Anmerkungen: @Retention, @Documented, @Target, @Inherited und @Repeatable.

@Retention

Englisch bedeutet Aufbewahrungsfrist. Wenn @Retention auf eine Anmerkung angewendet wird, wird erklärt, wie lange die Anmerkung gültig ist.

@Documented

Diese Meta-Anmerkung steht definitiv im Zusammenhang mit dem Dokument. Seine Funktion besteht darin, die Elemente in der Annotation in Javadoc einzubinden

@Target

Die Bedeutung von target, @Target, gibt den Ort an, an dem die Annotation verwendet wird

@Inherited

Vererbt bedeutet Vererbung, aber es bedeutet nicht, dass die Annotation selbst vererbt werden kann. Es bedeutet, dass, wenn eine Superklasse mit einer @Inherited-Annotation annotiert ist, ihre Unterklasse von keiner Annotation angewendet wird. dann erbt diese Unterklasse die Superklassenanmerkung

@Repeatable

Repeatable bedeutet natürlich wiederholbar. @Repeatable wurde erst in Java 1.8 hinzugefügt und gilt daher als neue Funktion.

Empfohlenes Lernen: Java-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas sind Java-Annotationen?. 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