Aufbewahrungsanmerkung
Aufbewahrungsanmerkung (Aufbewahrungsanmerkung) gibt an, dass diese Art von Anmerkung bis zu diesem Zeitpunkt beibehalten wird. Es gibt drei Werte:
1.RetentionPolicy.SOURCE – Diese Art von Anmerkungen werden nur beibehalten Auf der Quellcodeebene wird es zur Kompilierungszeit ignoriert
2.RetentionPolicy.CLASS – Diese Art von Anmerkungen wird zur Kompilierzeit beibehalten und ist in der Klassendatei vorhanden, aber die JVM ignoriert
3.LAUFZEIT – Anmerkungen dieses Typs werden von der JVM beibehalten, sodass sie von der JVM oder anderem Code mithilfe des Reflexionsmechanismus zur Laufzeit gelesen und verwendet werden können.
Beispiel 5 zeigt die Deklaration von RetentionPolicy.RUNTIME:
Beispiel 1 von Java-Annotationen:
@Retention(RetentionPolicy.RUNTIME) public @interface Test_Retention { String doTestRetention(); }
In diesem Beispiel gibt die Annotation @Retention(RetentionPolicy.RUNTIME) an, dass die Annotation Test_Retention von der virtuellen Maschine beibehalten wird, sodass sie durch Reflektion gelesen werden kann Laufzeit Take.
Dokumentierte Annotation
Dokumentierte Annotation gibt an, dass diese Annotation vom Javadoc-Tool aufgezeichnet werden soll. Standardmäßig enthält Javadoc keine Annotationen, wenn jedoch @Documented beim Deklarieren einer Annotation angegeben wird , es Wird von Tools wie Javadoc verarbeitet, sodass die Annotationstypinformationen auch in das generierte Dokument aufgenommen werden. Beispiel 6 demonstriert weiter die Verwendung von @Documented:
Beispiel 2 der Java-Annotation:
@Documented public @interface Test_Documented { String doTestDocument(); }
Ändern Sie als Nächstes die TestAnnotations-Klasse wie folgt:
public class TestAnnotations { public static void main(String arg[]) { new TestAnnotations().doSomeTestRetention(); new TestAnnotations().doSomeTestDocumented(); } @Test_Retention (doTestRetention="保留注解信息测试") public void doSomeTestRetention() { System.out.printf("测试注解类型 'Retention'"); } @Test_Documented(doTestDocument="Hello document") public void doSomeTestDocumented() { System.out.printf("测试注解类型 'Documented'"); } }
Wenn Sie nun den Befehl javadoc verwenden, um die Datei TestAnnotations.html zu generieren, sehen Sie ein Ergebnis ähnlich wie in Abbildung 1 .
Wie Sie dem Screenshot entnehmen können, gibt es im Dokument keine annotation-type information()-Methode für die doSomeTestRetention()-Methode Die Methode „doSomeTestDocumented()“ stellt die Beschreibungsinformationen der Annotation bereit. Dies liegt daran, dass das Tag „@Documented“ zur Annotation „Test_Documented“ hinzugefügt wurde. Möglicherweise liegt ein Problem mit diesem Absatz vor...)
Dies ist ein etwas komplexerer Annotationstyp. Er zeigt an, dass die annotierte Klasse automatisch erbt. Genauer gesagt, wenn das @Inherited-Tag beim Definieren verwendet wird Annotation, und dann wird die definierte Annotation zum Annotieren einer anderen übergeordneten Klasse verwendet. Die übergeordnete Klasse verfügt über eine weitere Unterklasse (Unterklasse). Alle Attribute der übergeordneten Klasse werden an ihre Unterklasse vererbt. In Beispiel 7 werden Sie die Vorteile der Verwendung sehen @Inherited-Tag.
Beispiel 3 für Java-Annotationen
Definieren Sie zunächst Ihre Annotation:
Annotieren Sie als Nächstes eine Klasse mit der Annotation:@Inherited public @interface MyParentObject { boolean isInherited() default true; String doSomething() default "Do what?"; }
@MyParentObject public Class MyChildObject { }
public class MyChildObject implements MyParentObject { public boolean isInherited() { return false; } public String doSomething() { return ""; } public boolean equals(Object obj) { return false; } public int hashCode() { return 0; } public String toString() { return ""; } public Class annotationType() { return null; } }
Fazit
Dieser Artikel zeigte Ihnen, wie Sie die Entwicklung durch die Verwendung der Annotationsfunktion von JDK5 vereinfachen können. Annotationen sind nicht direkt möglich Entwicklungs- und Bereitstellungstools können diese Annotationen irgendwie lesen und verarbeiten. Mit ihnen können Programme, die Annotationen verwenden, zusätzliche Java-Quelldateien, XML-Dokumente oder andere alte Artefakte ersetzen Der Zweck von Annotationen besteht darin, weniger Zeit mit harten und nutzlosen Details zu verbringen und sich mehr auf Geschäftslogikregeln zu konzentrieren. Sie erfahren, wie Sie Annotationen verwenden, um ein einfaches Webanwendungsprogramm zu entwickeln. Im dritten Teil sehen Sie schließlich ein komplexes Beispiel, das mehrere Datenbanktabellen enthält.
Weitere relevante Artikel zur Einführung von Retention. Dokumentiert und in Java vererbt, achten Sie bitte auf die chinesische PHP-Website!