Heim Java JavaErste Schritte So nutzen Sie Java-Annotationen besser

So nutzen Sie Java-Annotationen besser

Jun 05, 2020 pm 05:21 PM
java 注解

So nutzen Sie Java-Annotationen besser

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 注解名称 {
	属性列表;
}
Nach dem Login kopieren

Essenz: Annotation ist im Wesentlichen eine Schnittstelle. Sie können die Klassendatei über den Befehl

public interface MyAnno extends java.lang.annotation.Annotation { }
Nach dem Login kopieren

dekompilieren in der Annotation Eigenschaften sind abstrakte Methoden in Schnittstellen.

Anforderungen:

Der Rückgabewerttyp des Attributs kann nur die folgenden Typen sein

Basisdatentyp

String

Aufzählung

Anmerkungen

Arrays der oben genannten Typen

public @interface MyAnno {
    int age();
    String name();
    //枚举类型
    Person per();
    //注解类型
    MyAnno2 anno2();
    //数组类型
    String[] strs();
}

//枚举类Person
public enum Person {
    P1,P2;
}
Nach dem Login kopieren

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 {
}
Nach dem Login kopieren

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 beibehalten

KLASSE: Die aktuell beschriebenen Annotationen werden in der Klassenbytecodedatei beibehalten, jedoch nicht von der JVM gelesen werden

LAUFZEIT: 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

@Inherited

Ob die aktuell beschriebene Beschreibungsanmerkung von der Unterklasse geerbt wird

Im 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();
    }
Nach dem Login kopieren

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";
           }
       }
Nach dem Login kopieren
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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Quadratwurzel in Java Quadratwurzel in Java Aug 30, 2024 pm 04:26 PM

Leitfaden zur Quadratwurzel in Java. Hier diskutieren wir anhand eines Beispiels und seiner Code-Implementierung, wie Quadratwurzel in Java funktioniert.

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Zufallszahlengenerator in Java Zufallszahlengenerator in Java Aug 30, 2024 pm 04:27 PM

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Armstrong-Zahl in Java Armstrong-Zahl in Java Aug 30, 2024 pm 04:26 PM

Leitfaden zur Armstrong-Zahl in Java. Hier besprechen wir eine Einführung in die Armstrong-Zahl in Java zusammen mit einem Teil des Codes.

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

See all articles