Erster Teil. Ich habe sehr kurz über Anmerkungen mit den Typen SOURCE und CLASS geschrieben. Es lohnt sich zu lesen, um sich nicht im zweiten Teil zu verlieren und noch ein bisschen mehr „Missverständnisse“ auszulösen =) Hier wird auf jeden Fall mindestens ein Wort dabei sein, das Sie kennen!
Als ich sie hier zum ersten Mal in Problemen sah, fielen sie mir irgendwie nicht auf. Nun ja, Override hängt rum, es wurde von IDEA geschrieben, also sollte es so sein. Mit der Zeit wurde mir klar, dass alles viel tiefer liegt. Während Sie lernen, erscheinen Anmerkungen wie etwas Nutzloses, aber Notwendiges. Sie wissen nicht, warum sie das tun. Ich glaube, ich habe ein paar Artikel gelesen, in denen stand: „Wie toll es ist, dass wir jetzt Anmerkungen haben, alles ist so einfach geworden.“ Aber ich wusste nicht, wie es vorher war, und ich verstand nicht, dass es jetzt einfacher ist. Jetzt weiß ich es und ich möchte dir ein wenig erzählen. Es gibt 3 Arten von Anmerkungen (RetentionPolicy):
Einheimisch – nie gesehen und nie benutzt. Ich denke, das ist eine eher seltene Anmerkung, weil... Sie verwenden es, wenn sie Code in einer anderen „nativen“ Sprache ausführen müssen. Ich habe versucht, einen klaren Bezug zu ihr zu finden, aber es gelang mir nicht.
SuppressWarnings – wird oft in der Form @SuppressWarnings("unchecked") verwendet. Wird verwendet, um Warnungen zu unterdrücken, die Ihnen bekannt sind. Das obige Beispiel unterdrückt Warnungen über die Umwandlung ungeprüfter Typen. Auch hier ist es mir nur in dieser Form und Verwendung begegnet.
Generiert – Ich bin jetzt darauf gestoßen, als die Aufgabe von mir verlangt, Klassen aus XSD-Dateien zu generieren. Diese 3 Anmerkungen sind recht spezifisch und werden Sie im Moment höchstwahrscheinlich nicht interessieren. Ich werde den letzten beschreiben.
Override – Sie verwenden es ständig und es hat eine sehr nützliche Funktion. Es ist leicht, beim Überschreiben einer Methode einen Fehler zu machen, es sei denn, IDEA führt dies durch. Es gibt Tippfehler oder einfach nur Fehler. Diese Annotation stellt sicher, dass die Methode in der übergeordneten Klasse mit unserer (beschrifteten) Methode übereinstimmt. Dies garantiert uns, dass die Methode überschrieben und nicht ergänzt wird. Beim Refactoring des Codes kann die Methode entfernt oder geändert werden. Auch hier zeigt Ihnen die Anmerkung den Fehler an. Ohne sie wäre unsere Methode einfach abgeschlossen.
Langweilig? Ich würde sagen: Ja, aus diesem Artikel lässt sich nicht viel Nützliches mitnehmen. Fast alles darin (90 %) ist eine Geschichte über etwas, das Sie nicht oder nur sehr selten verwenden werden. Die restlichen 10 % sind Hallo und eine Beschreibung der Override-Annotation, die auf den ersten Blick nutzlos ist. Nun, ich denke, der zweite Teil des Artikels wird interessanter sein. Es wird RUNTIME-Anmerkungen geben, die in Echtzeit mit dem Code interagieren und schwarze Magie erzeugen. Anmerkungen. Zweiter Teil. Lombok.
- QUELLE – Compiler-Anmerkungen
- KLASSE – Daten aus der Anmerkung werden in den Bytecode geschrieben, sind aber während des Betriebs nicht verfügbar. Sie schreiben, dass viele Anmerkungen in der Standardbibliothek diesen Typ verwenden, und jetzt behalten sie ihn aus Gründen der Abwärtskompatibilität bei. Wird für sehr spezifische Aufgaben verwendet.
- Frage und Antwort zu StackOverflow
- RUNTIME – am beliebtesten, wird verwendet, während der Code ausgeführt wird.
- java/lang/annotation/Native.class;
- java/lang/SuppressWarnings.class
- javax/annotation/Generated.class
- ,java/lang/Override.class
- com/sun/istack/internal/Nullable.class
- com/sun/istack/internal/NotNull.class
- com/sun/istack/internal/Interned.class
- Native – eine Variable unter dieser Annotation kann auf nativen Code verweisen;
- SuppressWarnings – unterdrückt verschiedene Compiler-Warnungen;
- Generiert – markiert den generierten Quellcode;
- Override – prüft auf Methodenüberschreibung.
GO TO FULL VERSION