Im obigen Beispiel, welchen Effekt hat @Deprecated? Ist es eine reine Dokumentation? Oder ändert sich etwas daran, wie der Compiler diese Klasse behandelt?Kommen Annotationen hauptsächlich zum Dokumentieren von Code vor oder werden sie vom Compiler erzwungen?
Antwort
Der Compiler erzwingt (wie in Schecks und quietscht auf) einige Anmerkungen (wie @Override
). Der nützlichste Teil ist, dass Bibliotheken ihre eigenen Anmerkungen liefern können (wie @Entity
oder @PersistenceAware
), von denen die Sprache Java (JDK-Kern) nichts weiß. Dies ist ähnlich wie das Hinzufügen von domänenspezifischem syntaktischem Zucker direkt in die Sprache.
@Deprecated
ist für die Dokumentation. Es erstellt auch Compilerwarnungen, wenn Sie eine veraltete Methode (oder Klasse) wie das alte JavaDoc @deprecated
-Tag verwenden.
Nur zu Dokumentationszwecken.
Wenn Sie etwas als veraltet markieren, dann geben Sie einem Benutzer über das generierte Javadoc an, dass diese Methode/Klasse nicht verwendet werden soll, z.
Datum (int Jahr, int Monat, int Datum): Veraltet. Ab JDK Version 1.1 wird durch Calendar.set (Jahr + 1900, Monat, Datum) oder GregorianCalendar (Jahr + 1900, Monat, Datum) ersetzt.
Wenn Sie etwas als veraltet markieren es ist eine gute Übung für einen Benutzer, um anzuzeigen, was sie anstelle dieser Methode verwendet werden soll.
- 1. Software zum Dokumentieren von Code?
- 2. Dokumentieren von POJO-Code mit Javax-Annotationen und Hibernate-Validierung
- 3. Java Annotationen - Javac Compiler Fehler?
- 4. Präprozessordirektiven, die vom RIM-Compiler unterstützt werden
- 5. Ruhe Annotationen - vor Felddeklaration oder vor dem Getter-setter
- 6. Ordnungsgemäße Methode zum Dokumentieren oder Darstellen benutzerdefinierter Ereignismodelle im DOM
- 7. C# werden String-Literale vom Compiler optimiert?
- 8. Dokumentieren von Angular2 TypeScript-Code
- 9. Was sind die Vor-/Nachteile von Annotationen (Nicht-Compiler) im Vergleich zu XML-Konfigurationsdateien?
- 10. Verwenden von CSDL zum Dokumentieren von Entitäten
- 11. Dokumentieren von C oder C++ Code mit Noweb und LaTeX
- 12. Dokumentieren bestehenden Code
- 13. Kann `memset` Funktionsaufruf vom Compiler entfernt werden?
- 14. Werden Felder beim Aktualisieren während des Verbrauchs von CrmService erzwungen?
- 15. Welche NoSQL-Datenbank hauptsächlich zum Schreiben
- 16. Verwenden der Symbolleiste zum Senden von SAS-Code vom Editor
- 17. Wie kommen Sie zu Instagram OAuth-Fehlern, nachdem sie den Sandbox-Modus erzwungen haben?
- 18. Wiki-Software zum Dokumentieren von APIs
- 19. Wie dokumentieren Sie Ihre Datenbankstruktur?
- 20. Wie bestimmen moderne optimierte Compiler, wann sie optimiert werden sollen?
- 21. Was sollte zuerst kommen - das Designmuster oder der Code?
- 22. Wie dokumentieren Sie Funktionsargumente?
- 23. Aktivieren Sie Spring Security vor-Post-Annotationen programmatisch
- 24. Bester Weg zum XML-Dokumentieren
- 25. Intellij IDEA-Code-Vervollständigung schlägt keine Klassen vor, die von Maven-Abhängigkeiten kommen
- 26. Können Kommentare vor `use strict;` kommen?
- 27. Dokumentieren von CMake-Skripten
- 28. In welcher Reihenfolge kommen Filter vor?
- 29. Wo können Hibernate-Annotationen platziert werden?
- 30. EF Core-Concurrency nicht erzwungen werden