Étudier Java 8 (répétable)

Cette fois, il est reproductible. Il semble que la même annotation puisse être écrite plusieurs fois au même endroit. Échantillonner immédiatement

/**
 *Annotation personnalisée appropriée.
 *Dans le sens de déclarer que Sake List apparaîtra à plusieurs reprises en passant@Répétable est joint.
 * @author komikcomik
 *
 */
@Repeatable(SakeList.class)
public @interface Sake {
	String name();

}
/**
 *Annotation personnalisée appropriée.
 *J'ai un tableau de Sake, ce qui me permet d'utiliser l'annotation sake à plusieurs reprises.
 * @author komikcomik
 *
 */
@Retention(RetentionPolicy.RUNTIME)
public @interface SakeList {
	Sake[] value();
}

Comme je l'ai écrit dans le commentaire, c'est une image qui déclare que plusieurs Sake apparaîtront du côté SakeList en écrivant @Repeatable (SakeList.class) du côté Sake. On a l'impression que le côté SakeList a également un tableau Sake qui lui correspond. De plus, si le nom de la méthode n'est pas value, j'ai une erreur de compilation.

Donc, un exemple d'utilisation de ceux-ci.

import java.lang.annotation.Annotation;

@Sake(name = "Midori")
@Sake(name = "Ichigin")
@Sake(name = "Ryusen Yae Sakura")
/**
 *Étudier répétable.
 * @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]);
		}
	}

}

Résultat d'exécution

@java8.repeatable.Sake(name=Midori)
@java8.repeatable.Sake(name=Ichigin)
@java8.repeatable.Sake(name=Ryusen Yae Sakura)

Je ne veux retirer que le dos de name =, mais je ne savais pas trop comment faire ...

2017/10/16 postscript Ce sera le contenu que vous m'avez dit dans la section des commentaires tel quel, mais il semble que vous pouvez l'obtenir en faisant ce qui suit.

		Sake[] Sakes = SakeListUser.class.getAnnotationsByType(Sake.class);
		for (int i = 0; i < Sakes.length; i++) {
		    // Sake#name()Peut être appelé comme méthode
		    System.out.println(Sakes[i].name());
		}

Une fois exécuté, ce sera comme suit. Agréable!

Midori
Ichigin
Ryusen Yae Sakura

Recommended Posts

Étudier Java 8 (répétable)
Étudions Java
[Java] Notes d'étude
Mémorandum d'étude Java
Étudier Java Silver 1
Journée d'étude Java Silver 1
Étudier Java # 1 (type typique)
Ma note d'étude (Java)
Etudier Java # 2 (\ marque et opérateur)
Étudier le tableau, la liste, la carte Java
Mémo de la méthode d'étude Java Silver
Etude de Java # 7 (Type de syntaxe de branche)
Java
Java
Étudier Java avec Progate Note 1
Comment étudier Java Silver SE 8
Résumé du package [Java Silver Study]
[Session d'étude interne] Gestion des exceptions Java (2017/04/26)
[Mémo de la session d'étude] Java Day Tokyo 2017
Étude de Java # 4 (branchement conditionnel / instruction if)
Etude de qualification Orcacla Java Bronze SE 7/8
Étude de Java # 5 (répétition et boucle infinie)
Étudiez le Deep Learning à partir de zéro en Java.
Apprendre Java (0)
Étudier Java ―― 3
[Java] tableau
Résumé de la session d’étude interne des recrues [Java]
Java protégé
[Java] Annotation
Module [Java]
Tableau Java
Étudier Java ―― 9
Java scratch scratch
Astuces Java, astuces
Méthodes Java
Méthode Java
java (constructeur)
Tableau Java
[Java] ArrayDeque
java (remplacement)
java (méthode)
Chaîne Java
java (tableau)
Sérialisation Java
java débutant 4
JAVA payé
Étudier Java ―― 4
Java (ensemble)
tri shell java
[Java] compareTo
Étudier Java -5
[Java ~ A propos de la définition de variable et de la conversion de type ~] Note d'étude
java réfléchissant 获 获 举
java (interface)
Mémorandum Java
Tableau Java
Étudier Java ―― 1