Was sind Anmerkungen?
Anmerkung, auch Metadaten genannt. Eine Beschreibung auf Codeebene. Es handelt sich um eine Funktion, die in JDK1.5 und späteren Versionen eingeführt wurde und auf derselben Ebene wie Klassen, Schnittstellen und Aufzählungen liegt. Es kann vor Paketen, Klassen, Feldern, Methoden, lokalen Variablen, Methodenparametern usw. deklariert werden und wird zum Erklären und Kommentieren dieser Elemente verwendet.
Wir können Anmerkungen als spezielle Markierungen im Code verstehen. Diese Markierungen können während der Kompilierung, beim Laden von Klassen und zur Laufzeit gelesen und entsprechende Verarbeitungen durchgeführt werden. Durch Annotationen können Entwickler zusätzliche Informationen in den Quellcode einbetten, ohne den ursprünglichen Code und die ursprüngliche Logik zu ändern.
1. Die Rolle von Anmerkungen
Dokumentation schreiben: Dokumente anhand der im Code identifizierten Anmerkungen generieren [Dokumentdokument generieren]
Codeanalyse : Bestanden Analysieren Sie den Code mit den im Code identifizierten Annotationen [Reflektion verwenden]
Kompilierungsprüfung: Der Compiler kann grundlegende Kompilierungsprüfungen durch die im Code identifizierten Annotationen implementieren [@Override]
2. Die vordefinierte Annotation
@Override
im JDK erkennt, ob die durch diese Annotation markierte Methode von der übergeordneten Klasse (Schnittstelle) geerbt wird.
@Veraltet
Der durch diese Anmerkung gekennzeichnete Inhalt weist darauf hin, dass er veraltet ist. Bei Verwendung wird eine horizontale Linie angezeigt.
SuppressWarnings
Warnungen unterdrücken, im Allgemeinen den Parameter all @SuppressWarnings("all") übergeben.
(Empfohlenes Video-Tutorial: Java-Video)
3. Benutzerdefinierte Anmerkungen
Format
public @interface 注解名称 { 属性列表; }
Essenz: Annotation ist im Wesentlichen eine Schnittstelle. Sie können die Klassendatei über den Befehl
public interface MyAnno extends java.lang.annotation.Annotation { }
dekompilieren in der Annotation Eigenschaften sind abstrakte Methoden in Schnittstellen.
public @interface MyAnno { int age(); String name(); //枚举类型 Person per(); //注解类型 MyAnno2 anno2(); //数组类型 String[] strs(); } //枚举类Person public enum Person { P1,P2; }Hinweis: definiert Attribute und muss bei der Verwendung mit Werten versehen werden durch Kommas Ein, daher wird der Methodenname in allgemeinen Anmerkungen im Allgemeinen als Attributname verwendet. Wenn Sie beim Definieren eines Attributs das Standardschlüsselwort verwenden, um dem Attribut einen Standardinitialisierungswert zuzuweisen, ist keine Zuweisung erforderlich ein Wert für das Attribut, wenn es verwendet wird; Wenn es nur ein Attribut gibt, dem ein Wert zugewiesen werden muss, und der Name des Attributs „Wert“ lautet, kann der Wert weggelassen werden und der Attributwert wird direkt definiert ; Beim Zuweisen eines Arrays wird der Wert mit {} umbrochen. Wenn das Array nur einen Wert enthält, kann {} weggelassen werden.
@MyAnno(age=20, name="zhangsan", per=Person.P1, anno2=@MyAnno2, strs={"zhangsan","lisi"}) public class Test { }Meta-Annotation: Annotation zur Beschreibung von Annotationen @Target Die Position, an der die aktuell beschriebene Annotation agieren kann, nämlich Wert und Gibt den Wert zurück. Ist ein Array vom Aufzählungstyp ElementType. Gemeinsame Werte von ElementType: TYPE: kann auf Klassen angewendet werden METHOD: kann auf Methoden angewendet werden FIELD: kann angewendet werden zu Mitgliedsvariablen Das obige @Rentention beschreibt die Phase, in der die Annotation beibehalten wird. Die Annotation hat nur einen Attributwert und der Rückgabewert ist der Wert des RetentionPolicy-Enumerationstyps RetentionPolicy QUELLE: Die aktuell beschriebenen Annotationen werden nicht in der Klassendatei beibehaltenKLASSE: Die aktuell beschriebenen Annotationen werden in der Klassenbytecodedatei beibehalten, jedoch nicht von der JVM gelesen werdenLAUFZEIT: Die aktuell beschriebene Annotation wird in der Klassenbytecode-Datei beibehalten und von der JVM gelesen. Benutzerdefinierte Werte nehmen im Allgemeinen diesen Wert an@Dokumentiert
Ob die aktuell beschriebene Annotation in das API-Dokument extrahiert wird@InheritedOb die aktuell beschriebene Beschreibungsanmerkung von der Unterklasse geerbt wirdIm Allgemeinen werden die ersten verwendet zwei Meta-Anmerkungen.
4. Verwendung von Anmerkungen
Verwendung von Anmerkungen im Programm: Rufen Sie die in diesen
// pro 注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface pro { String className(); String methodName(); } //在程序中使用注解 @pro(className="anli.Demo1", methodName = "show1") public class UseAnno { public static void main(String[] args) throws Exception { //获取这个类的class对象 Class<UseAnno> useAnnoClass = UseAnno.class; //获取指定的注解类子类对象 pro proAnno = useAnnoClass.getAnnotation(pro.class); //执行注解中的方法,获取注解中属性的值 String className = proAnno.className(); String methodName = proAnno.methodName(); }definierten Attributwerte über getAnnotation in der Klasse ab Bei der Methode class () wird das Objekt der Implementierungsklasse der Annotationsklasse erhalten. Mit dem Objekt können Sie die Methode in der Annotation ausführen, und der Rückgabewert ist der Attributwert, der bei Verwendung der Annotation festgelegt wird. Tatsächlich wird im Speicher ein Unterklassenimplementierungsobjekt der Annotationsschnittstelle generiert
public class ProImpl implements Pro{ public String className(){ return "cn.itcast.annotation.Demo1"; } public String methodName(){ return "show"; } }Empfohlenes Tutorial:
Einführung in die Java-Entwicklung
Das obige ist der detaillierte Inhalt vonSo nutzen Sie Java-Annotationen besser. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool