annotations Java avec la rétention d'exécution (c'est ceux que vous pouvez obtenir grâce à la réflexion) ne sont accessibles directement à partir de l'élément sur lequel l'annotation est présente. Donc, vous allez devoir parcourir les méthodes et vérifier les annotations comme dans votre exemple.
Si vous devez faire beaucoup de traitement des annotations au niveau de la classe, je vous suggère de créer une classe utilitaire qui fait cela:
public class AnnotationUtils {
public static int countMethodsWithAnnotation(Class<?> klass,
Class<?> annotation) {
int count = 0;
for (Method m : klass.getMethods()) {
if (m.isAnnotationPresent(annotation)) {
count++;
}
}
return count;
}
// Other methods for custom annotation processing
}
Vous pouvez ensuite utiliser la classe utilitaire pour obtenir l'information que vous voulez dans un appel de méthode comme vous avez besoin dans le reste de votre code:
int count = AnnotationUtils.countMethodsWithAnnotation(ParseTree.class,
Analyze.class);
Oui, la vraie question est: Pourquoi ?? –