Diesmal ist es wiederholbar. Es scheint, dass dieselbe Anmerkung mehrmals an derselben Stelle geschrieben werden kann. Sofort probieren
/**
*Angemessene selbst erstellte Anmerkung.
*Im Sinne der Erklärung, dass Sake List übrigens immer wieder auftaucht@Wiederholbar ist beigefügt.
* @author komikcomik
*
*/
@Repeatable(SakeList.class)
public @interface Sake {
String name();
}
/**
*Angemessene selbst erstellte Anmerkung.
*Ich habe eine Reihe von Sake, mit denen ich die Sake-Annotation wiederholt verwenden kann.
* @author komikcomik
*
*/
@Retention(RetentionPolicy.RUNTIME)
public @interface SakeList {
Sake[] value();
}
Wie ich im Kommentar geschrieben habe, ist es ein Bild, das erklärt, dass mehrere Sake auf der SakeList-Seite erscheinen, indem @Repeatable (SakeList.class) auf der Sake-Seite geschrieben wird. Es fühlt sich so an, als hätte die SakeList-Seite auch ein entsprechendes Sake-Array. Wenn der Methodenname kein Wert ist, wurde ein Kompilierungsfehler angezeigt.
Ein Beispiel für die Verwendung dieser.
import java.lang.annotation.Annotation;
@Sake(name = "Midori")
@Sake(name = "Ichigin")
@Sake(name = "Ryusen Yae Sakura")
/**
*Wiederholbar studieren.
* @author komikcomik
*
*/
public class SakeListUser {
public static void main(String[] args) {
Annotation[] anoList = SakeListUser.class.getAnnotationsByType(Sake.class);
for (int i = 0; i < anoList.length; i++) {
System.out.println(anoList[i]);
}
}
}
Ausführungsergebnis
@java8.repeatable.Sake(name=Midori)
@java8.repeatable.Sake(name=Ichigin)
@java8.repeatable.Sake(name=Ryusen Yae Sakura)
Ich möchte nur die Rückseite des Namens herausnehmen =, aber ich war mir nicht sicher, wie ich das machen soll ...
2017/10/16 postscript Es wird der Inhalt sein, den Sie mir im Kommentarbereich so wie er ist gesagt haben, aber es scheint, dass Sie ihn erhalten können, indem Sie die folgenden Schritte ausführen.
Sake[] Sakes = SakeListUser.class.getAnnotationsByType(Sake.class);
for (int i = 0; i < Sakes.length; i++) {
// Sake#name()Kann als Methode aufgerufen werden
System.out.println(Sakes[i].name());
}
Bei der Ausführung ist dies wie folgt. Nett!
Midori
Ichigin
Ryusen Yae Sakura
Recommended Posts