Heim >Java >javaLernprogramm >Wie implementiert man in Java häufig verwendete Annotationen?
「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!