Anmerkung
1. Was ist Annotation? (Annotation oder Kommentare)
Annotation sollte die genaue Übersetzung sein - Annotation. Es ist völlig anders als Kommentare.
Annotation ist eine Funktion, die von JDK5.0 und späteren Versionen eingeführt wird. Es ist auf der gleichen Ebene wie Klassen, Schnittstellen und Aufzählungen und kann zu einer Art Java werden.
Die Syntax beginnt mit @,,,
Kommentare sind einige Auswendiglernen oder sofortige Beschreibungen, die von Programmierern der Quellcode -Klassen, -Methoden, -eigenschaften usw. (z. B. für das, wofür diese Methode verwendet wird) erstellt wurde und für die Menschen sie sehen.
Die Annotation ist der Teil, den der Java -Compiler verstehen kann, und der Compiler ist zu sehen.
Lassen Sie uns ein einfaches Beispiel geben, um die Verwendung und Funktion von Annotationen anzuzeigen.
@Override ist eine gemeinsame Java-eingebaute Annotation. Seine Funktion besteht darin, zu überprüfen, ob die in der Unterklasse definierten Methoden beim Kompilieren des Codes korrekt sind.
Paketannotation; public abstract Class Animal {public abstract void eat (); } Paketannotation; öffentliche Klasse Cat erweitert Animal {@Override public void eat (String Food) {}} Hier wird die EAT -Methode in der Katze Subklass als eine Methode mit Annotation der übergeordneten Klasse annotiert, hat jedoch einen mehr Parameter als die übergeordnete Klassenmethode.
Wenn Sie in Eclipse bearbeiten, gibt es eine Eingabeaufforderung des Roten Kreuzes. (Die Codekompilierung wird nicht übergeben).
Wenn Sie die @Override -Annotation entfernen, gibt es kein Problem beim Kompilieren, aber die EAT -Methode in Katze ist eine neue Methode dieser Klasse, die nicht von der Elternklasse geerbt wird.
2. Common Java eingebaute Anmerkungen
Einschließlich @Override, welche anderen gemeinsamen Java-integrierten Anmerkungen?
1. @deprecated
Die Annotation wird nicht empfohlen und kann bei Methoden und Klassen verwendet werden.
Grundsätzlich werden diese Methode und diese Klasse aus einigen Gründen wie Upgrade oder Leistung aufgegeben und nicht empfohlen, muss jedoch aus Kompatibilität oder anderen Gründen beibehalten werden.
Setzen Sie diese Annotation also darauf.
Es gibt viele solche Beispiele in der Java selbst -API. Wenn Sie diese Annotation auf die Methode setzen, sehen Sie, welche neue alternative Methode ist.
Beim Schreiben von Code in Eclipse wird die Methode, die diese Annotation hinzufügt, sowohl der Deklaration als auch dem Anruf Schläge hinzugefügt.
2.@override
3.@Suppresswarnings
Warnungen ignorieren.
Wenn Ihr Code einige Warnungen in der Transformation oder in anderen Teilen enthält, diese Warnungen jedoch ignorieren möchten, können Sie diese Annotation verwenden.
1) Warnung, wenn die Abschaltung eine Klasse oder Methode verwendet, die nicht bevorzugt wird
2) Unkontrollierte Warnung, wenn die deaktivierte Konvertierung durchgeführt wird
3) Falschwarnungen werden angezeigt, wenn der Break -Operation nach Verwendung des Falls nicht hinzugefügt wird, wodurch das Programm weiterhin andere Fallanweisungen ausgeführt hat
4) Pfadwarnung beim Festlegen eines falschen Klassenpfad- oder Quelldateipfads
5) Serienwarnung Wenn eine serialversionuidische Definition in der serialisierbaren Klasse fehlt
6) WARNUNG FIALAGE, wenn eine schließlich keine Klausel normalerweise nicht abgeschlossen werden kann
7) Alle Warnungen vor allen oben genannten Situationen
1. Sonderanmerkung
Zusätzlich zu den integrierten Anmerkungen von Java selbst bietet Java auch die Funktion, benutzerdefinierte Anmerkungen anzupassen.
Der Weg zur Definition von Anmerkungen besteht darin, Anmerkungen zur Definition von Anmerkungen zu verwenden. Die zur Definition von Anmerkungen verwendeten Anmerkungen werden als Meta -Annotationen bezeichnet.
Die wichtigsten Meta -Anmerkungen sind wie folgt: @target; @Zurückbehaltung; @Documented; @Inherited
1. @Target gibt an, wo die Annotation verwendet wird, und kann für Klassen, Methoden oder Attribute verwendet werden. Mögliche Elemenettype -Parameter umfassen:
Elemenettype.Constructor Constructor Deklaration
ElemenetType.field Domain Deklaration (einschließlich Enum -Instanzen)
ElemenetType.Local_Variable Lokale Variable Deklaration
ElemenetType.Method -Methode Deklaration
ElemenetType.Package Paket -Anweisung
ElemenetType.Parameter Parameterdeklaration
ElemenetType.Type -Klasse, Schnittstelle (einschließlich Annotationstyp) oder Enum -Deklaration
2. @Retention gibt auf welcher Ebene an, um die Annotationsinformationen zu speichern. Zu den optionalen Parametern der RetentionPolicy gehören:
RetentionPolicy.Source -Annotation wird vom Compiler verworfen
RetentionPolicy.Class -Annotation ist in der Klassendatei verfügbar, wird jedoch von der VM verworfen.
RetentionPolicy.Runtime VM wird auch während der Laufzeit Kommentare behalten, sodass die Annotationsinformationen durch den Reflexionsmechanismus gelesen werden können.
3. @Documented, ob diese Annotation bei der Generierung von DOC aufgenommen werden soll, fügen Sie diese Annotation in Javadoc hinzu
4. @Inherited
Lassen Sie Unterklassen die Anmerkungen in der übergeordneten Klasse erben. Sehen Sie sich einige einfache Definitionsbeispiele an:
Paketannotation; import Java.lang.Annotation.Documented; Import Java.lang.Annotation.Elementtype; import Java.lang.annotation.inherited; importieren java.lang.annotation.retention; Import Java.lang.annotation.RetentionPolicy; importieren java.lang.annotation.target; @Target (elementtype.method) public @Interface myannotation {string value (); } @Retention(RetentionPolicy.SOURCE) @interface MyAnnotation1 { } @Retention(RetentionPolicy.CLASS) @interface MyAnnotation2 {} @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation3 {} @Documented @interface MyAnnotation4 {} @Inherited @interface MyAnnotation5 { }4. Verwenden Sie Beispiele:
Paketannotation; importieren java.lang.annotation.annotation; @Myannotation3 public class testannotation {public static void main (String [] args) {// Todo automatisch generierte Methode Stub Annotation Annotation = testannotation.class.getAnnotation (myannotation3.class); System.out.println (Annotation.ToString ()); }} Drucken Sie das Ergebnis aus: @Annotation.myannotation3 ()
Wenn Myannotation1 und Myannotation2 im obigen Beispiel ersetzt werden, ist der Wert der erhaltenen Annotation leer, was der Unterschied zwischen RetentionPolicy ist.
V. Die Rolle der Annotation
Zu diesem Zeitpunkt können wir die Rolle der Annotation zusammenfassen.
Die Grundlagen können grob in drei Kategorien unterteilt werden:
1. Schreiben Sie ein Dokument
2. Codeanalyse
3. Die Zusammenstellung von Open Source -Frameworks verleihen ihm jedoch mehr Funktionen, wie z. B.:
Hibernate, Annotationskonfiguration,
@Column ("aa") private String xx; Dies ähnelt der XML -Konfiguration, die die Konfiguration im Programm vereinfacht und einen Teil der Metadaten von der XML -Datei in den Code selbst verschiebt und an einem Ort verwaltet und verwaltet.
Wie wird es intern implementiert? - Java-Reflexionsmechanismus, ähnlich dem obigen Beispiel.
Kommentare
Obwohl die Anmerkungen und Kommentare nur ein Wort anders sind, ist die Verwendung sehr unterschiedlich.
Der gleiche Satz ist wahr, die Anmerkungen sind für den Compiler zu sehen, und die Anmerkungen sind für die Menschen zu sehen.
Basierend darauf für eine Methode:
1. Beschreiben Sie einfach die Funktion dieser Methode klar, Eingabe und Ausgabe. Sie können weitere Informationen wie Autoren und Versionen hinzufügen.
2. Machen Sie diese beiden Dinge einfach mit einem schönen Kommentararrangement. Zum Beispiel:
/********************************************************************************************************************* * NAME: usage * DESCRIPTION: XXX * ARGUMENTS: N/A * RETURN: * AUTHOR: oscar999 * VERSION: V0.1 **********************
Es sieht so aus, als wäre dies eine gute Notiz ^^.
Für die Java -Sprache erhalten Kommentare jedoch mehr Funktionen. Das heißt, Sie können die Javadoc -Funktion verwenden, um Kommentare in den Code in die HTML -Datei zu exportieren.
Wenn Ihr Code Code mit hoher Gemeinsamkeit ist, ist dieses Dokument ein API -Referenzdokument, ähnlich wie die Java -API.
Um ein solches Dokument zu generieren, müssen Sie daher einige von Java definierte Annotationsspezifikationen befolgen, um ein standardisiertes Dokument zu erstellen.
1. Standardkommentare zu Java -Klassenmethoden
Beginnen wir mit den Kommentaren zur Klassenmethode.
/*** Lesen Sie eine Textzeile. Eine Linie wird als beendet von einer * von einem Linien -Feed ('/n'), einer Wagenrückgabe ('/r') oder einer Wagenrendite * angesehen, die unmittelbar von einem Linefeed befolgt wird. * * @param ignorelf1 Wenn true, wird der nächste '/n' übersprungen <pre code_snippet_id = "74911" snippet_file_name = "blog_20131120_2_8365599" name = "code"> * @param ignorelf2 Wenn wahr, der nächste. Alle Zeilenmeldungen oder Null, wenn das Ende des * Streams erreicht wurde (Achten Sie nicht auf die Bedeutung der obigen Kommentare, konzentrieren Sie sich einfach auf den Stil seiner Definition)
1. Schauen Sie sich zuerst die obere "Lesen Sie eine Textzeile lesen. Eine Zeile ..". Dieser Absatz ist eine Beschreibung dieser Methode.
Der Teil vor der ersten Periode, die "eine Textzeile lesen". wird in "Methodenzusammenfassung" angezeigt
2. @Param definiert die Eingabeparameter der Methode, die in "Methodendetails" angezeigt wird. (Die Parameter- und Parameterbeschreibung werden durch Leerzeichen getrennt und in das generierte Dokument in - in - konvertiert)
3.. @Return Beschreibung des Rückgabewerts
4. @See Referenzbeschreibung
5. Die Beschreibung von @Exception, die ausnahmslos geworfen wird, ist wunderschön. Verschiedene Arten von Tags können in einer Zeile angezeigt werden, wie z. B. @Param und @Return direkt eine Zeile.
2. Java -Klasse Standardkommentare
Das Format von Klassenanmerkungen und Methodenanmerkungen ist im Grunde dasselbe. Was ist der Unterschied:
1. Die Platzierung ist anders. Klassenanmerkungen werden über der Klassendefinition platziert, und Methodenanmerkungen werden über der Methodendefinition platziert.
2. Klasse Annotation Vergleich verwendet Tags wie @version @Author @Since.
Schauen Sie sich die Vorlage an
/** puffert die Eingabe aus der angegebenen Datei. Ohne Pufferung kann jeder * Aufruf von Read () oder Readline () Bytes aus der * Datei gelesen, in Zeichen konvertiert und dann zurückgegeben werden, was sehr * inhärent sein kann. * * Testbeschreibung * * <P> Programme, die DataNputStreams für die Texteingabe verwenden, können lokalisiert werden, indem jeder DataNputStream durch einen geeigneten BufferedReader ersetzt wird. * * @see fileReader * @see InputStreamReader * * @version 0.1, 20/20/13 * @Author Oscar999 * @Since Jdk1.5 *///////////
Die in DOC angezeigten Effekte sind:
In ähnlicher Weise erscheint der erste Satz der Beschreibung im "Klassik".
Die Details der Klasse werden wie folgt angezeigt:
Es ist erwähnenswert, dass die Verwendung von <p> in Beschreibung. Wenn nicht hinzugefügt wird, egal ob es eine neue Zeile im Java -Code gibt, ist das generierte DOC nicht neu. Wenn <p> hinzugefügt wird, erscheint eine neue Zeile in DOC.
3. Ergänzung
Zum hinzufügen, die Methode zum Generieren von Javadoc:
1. Zeilenmethode: Javadoc + Parameter
2. Verwenden Sie die Eclipse-IDE, um in der Eclipse-IDE zu exportieren, klicken Sie mit der rechten Maustaste auf die Quelldatei oder das Projekt, wählen Sie Export --->
Java -> Javadoc kann generiert werden.