Überblick über Java -Kommentare:
1. Anmerkungen sind für den Compiler zu sehen, der sich von Anmerkungen unterscheidet
2. Drei grundlegende Anmerkungen:
@Override teilt dem Compiler mit, dass dies die Methode überschreibt
@Deprecated sagen dem Compiler, dass die Methode veraltet ist
@SuppressWarnings ("Unbekämpft") warnen nicht
= (value = {"deaktiviert"})
3. Anmerkungen können verwendet werden, um herkömmliche Konfigurationsdateien zu ersetzen
4. Ab JDK5 hat Java Unterstützung für Metadaten (Metadaten), nämlich Annotation, hinzugefügt.
Benutzerdefinierte Anmerkungen und Reflexionsanmerkungen
Benutzerdefinierte Anmerkungen:
1. Erstellen Sie eine neue Annotation: (nur ein @ symbol mehr als die Schnittstellendefinition)
Die Codekopie lautet wie folgt:
public @Interface Myannotation {
//Eigentum
String WHO ();
int age ();
String -Geschlecht ();
}
2. Setzen Sie Annotation mit Standardwerten
Die Codekopie lautet wie folgt:
public @Interface yoannotation {
String WHO () Standard "Tom";
int age () Standard 0;
String -Geschlecht () Standard "weiblich";
}
3. Array -Situation
Die Codekopie lautet wie folgt:
public @Interface theAnnotation {
String [] value ();
}
Metaannotation / Metaannotation
Wird verwendet, um Annotation zu ändern. (Sie können den Quellcode von @Override anzeigen)
@Retention Annotation -Richtlinie, mit der die Domänen angegeben werden, die die Annotation behalten kann
RetentionPolicy.Class
Es gibt auf der Bytecode -Ebene, sind aber auf der Auslaufebene nicht sichtbar (Standard)
RetentionPolicy.Runtime
Alle drei Ebenen sind sichtbar und können während der Laufzeit reflektiert werden
RetentionPolicy.Source ist nur auf der Ebene der Quellcode erhältlich und ist auf der Bytecode -Ebene nicht sichtbar.
@Target gibt den Umfang der verwendeten Annotation an
@Documented Schreiben in das Dokument.
@Inheritited Vererbbarkeit, Unterklassen, die diese Klasse erben, haben immer noch die Eigenschaften der übergeordneten Klasse als Annotation.
Ex.
Die Definitionsanmerkungen sind wie folgt:
Die Codekopie lautet wie folgt:
// Lassen Sie eine Annotation zur Laufzeit reflektiert werden
@Retention (RetentionPolicy.Runtime)
public @Interface dbinfo {
String driver () Standard "com.mysql.jdbc.driver";
String url () Standard "url = jdbc: mysql: // localhost: 3306/Academic";
String password () Standard "1234";
String userername () Standard "root";
}
Reflexionsinjektion:
Die Codekopie lautet wie folgt:
@Dbinfo
öffentliche statische Verbindung getConnection () löst Ausnahme {aus {
// Holen Sie sich den Bytecode dieser Klasse
Klasse Clazz = Demo2.Class;
// Die öffentliche Methode namens GetConnection () in dieser Klasse erhalten
// Parameter 1: Methodenname
// Parameter 2: Das Bytecode -Objekt entspricht dem Parameter des Methodyps
Method -Methode = clazz.getMethod ("getConnection", null);
// Erhalten Sie durch diese Methode die auf der Methode definierte Annotation
Dbinfo dbinfo = methode.getAnnotation (dbinfo.class);
String driver = dbinfo.driver ();
String url = dbinfo.url ();
String user = dbinfo.username ();
String password = dbinfo.password ();
Class.Forname (Treiber);
return triverManager.getConnection (URL, Benutzer, Passwort);
}