Heim  >  Artikel  >  Java  >  Wie implementiert man in Java häufig verwendete Annotationen?

Wie implementiert man in Java häufig verwendete Annotationen?

php是最好的语言
php是最好的语言Original
2018-07-27 09:29:191355Durchsuche

「Java」Wissen Sie, wie die Java-Annotationen, die wir häufig verwenden, implementiert werden? Anmerkungen sind äquivalent zu Tags. Der Unterschied zwischen ihnen und Anmerkungen besteht darin, dass der Inhalt der Anmerkungen verwendet werden kann. Lassen Sie uns als Nächstes Java-Anmerkungen kennenlernen.

Um Anmerkungen zu verwenden, können wir sie in drei Teile unterteilen, nämlich: die Anmerkung selbst, die Anmerkungsverwendungsklasse und die Anmerkungsverarbeitungsklasse, wie unten gezeigt: Bildbeschreibung

Die Struktur von die Anmerkung

Als nächstes wollen wir sehen, wie der Code funktioniert

Schritt 1: Neue Anmerkungen erstellen
Erstellen Sie zwei neue Anmerkungen, nämlich PlayerName und PlayerInfor

PlayerName:

import java.lang.annotation.Documented;

import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation .RetentionPolicy;

import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.FIELD)

@Documented

public @interface PlayerName {

String value() default "";

}

PlayerInfor:

java .lang.annotation.Documented importieren;

java.lang.annotation.ElementType importieren;

java.lang.annotation.Retention importieren;

java importieren .lang.annotation. RetentionPolicy;

import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.FIELD)

@ Documented

public @interface PlayerInfor {

public enum Color{Blue,Red,White};

Color color() default Color.Blue;

int number() default 7;

int age();

String club() default "Manchester United";

}

Zweiter Schritt: Definieren Sie die Entitätsklasse und verwenden Sie die neu erstellte Annotation
, um eine neue FootballPlayer-Klasse zu erstellen

FootballPlayer:

öffentliche Klasse FootballPlayer {

// Binden Sie die PlayerName-Annotation an das Namensattribut der Entitätsklasse

@PlayerName("Rooney")

public String name;

//Binden Sie die PlayerInfor-Annotation an die playInfo Attribut der Entitätsklasse

@PlayerInfor(color=Color.Red,number=10,age=30)

public String playInfo;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPlayInfo() {

return playInfo;

}

public void setPlayInfo(String playInfo) {

this.playInfo = playInfo;

}

}

Schritt 3: Annotationsverarbeitungsklasse definieren, um Annotationen von Entitätsklassen zu verarbeiten
Eine neue AnnoUtil-Toolklasse erstellen

AnnoUtil:

import java.lang.reflect.Field;

public class AnnoUtil {

public static void getPlayerInfo(Class clazz){

/Alle Attribute der Entitätsklasse abrufen/

Field[] Fields = clazz.getFields();

//Schleife zum Extrahieren der Anmerkungen in der Entitätsklassenattribute

for(Field field:fields){

//Match annotation

if(field.isAnnotationPresent(PlayerName.class)){

//Annotation abrufen

PlayerName name = field.getAnnotation(PlayerName.class);

//Annotationen verwenden

System.out.println("Name des Athleten: " +name.value());

}else if(field.isAnnotationPresent(PlayerInfor.class)){

//Annotation abrufen

PlayerInfor infor = field.getAnnotation (PlayerInfor.class);

//Anmerkungen verwenden

System.out.println("Teamzugehörigkeit: "+infor.club()+", repräsentiert Farbe: "

+infor.color() +", Zahl: "+infor.number()+", Alter: "+infor.age());

}

}

}

}

Schritt 4: Rufen Sie die Verarbeitungsmethode der Verarbeitungsklasse auf
public static void main(String[] args) {

AnnoUtil .getPlayerInfo(FootballPlayer.class);

}

Die Ausgabeergebnisse lauten wie folgt:

Athletenname: Rooney

Mannschaft: Manchester United, Vertreter Farbe: Rot, Nummer: 10, Alter: 30

Aus dem obigen Programm kann Folgendes verstanden werden: Die Beziehung zwischen Entitätsklassen und Anmerkungen ist wie Artikel und Notizen, und die Anmerkungsverarbeitungsklasse ist wie Menschen; Menschen lesen Artikel mit Notizen, analysieren und verarbeiten sie und geben das Ergebnis aus, das Sie ausdrücken möchten.

Anhang:
Java stellt vier Meta-Annotationen bereit, die speziell für die Annotation anderer Annotationen verantwortlich sind, wie folgt:

@Retention-Meta-Annotation, die angibt, auf welcher Ebene die Annotationsinformationen benötigt werden gerettet werden (Lebenszyklus). Zu den optionalen RetentionPoicy-Parametern gehören:

RetentionPolicy.SOURCE: Bleiben Sie in der Java-Quelldatei, der Compiler wird verworfen.

RetentionPolicy.CLASS: Bleiben Sie in der Klassendatei, wird aber von der VM verworfen (Standard)

RetentionPolicy.RUNTIME: Bytecode im Speicher, VM behält Anmerkungen auch zur Laufzeit bei, sodass die Anmerkungsinformationen über den Reflexionsmechanismus gelesen werden können

@Target-Meta-Annotation, Standardwert Gibt für jedes Element an, wo die Anmerkung verwendet wird. Zu den verfügbaren ElementType-Parametern gehören

ElementType.CONSTRUCTOR: Konstruktordeklaration

ElementType.FIELD: Mitgliedsvariablen, Objekte, Eigenschaften (einschließlich Enum-Instanzen)

ElementType.LOCAL_VARIABLE: lokale Variablendeklaration

ElementType.METHOD: Methodendeklaration

ElementType.PACKAGE: Paketdeklaration

ElementType.PARAMETER: Parameterdeklaration

ElementType.TYPE: Klasse, Schnittstelle ( einschließlich Annotationstypen) oder Enum-Deklaration

@Documented enthält Annotationen in JavaDoc

@Inheried ermöglicht Unterklassen, Annotationen in übergeordneten Klassen zu erben [1]: /img/bVbekSZ

Ich habe gerade eine Reihe der neuesten grundlegenden Einführungs- und Fortgeschrittenen-Tutorials für 2018 zusammengestellt. Sie können sie durch Hinzufügen der Java-Lernnummer 678-241-563 erhalten. Enthalten sind: Entwicklungstools und Installationspakete , sowie System-Lernroutenbild.

Verwandte Artikel:

Zusammenfassung der am häufigsten verwendeten Annotationen in Java

Java-Annotations-Tutorials und benutzerdefinierte Annotationen

Ähnliche Videos:

Umfassende Analyse von Java-Annotationen

Das obige ist der detaillierte Inhalt vonWie implementiert man in Java häufig verwendete Annotationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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