Bonjour,
désolé si cette question a déja été posée dans un des forums...
je souhaiterais trouver par introspection si une méthode définie dans une interface possède bien une annotation.
Je vous met ci dessous le cas de test.
Une annotation 'require' est apposée sur la methode add() définie dans une interface IServ1.
C1 implémente IServ1. Un main() à l'intérieur de C1 essaie de retrouver cette annotation.
Même en parcourant l'interface elle même on ne parvient pas à trouver l'annotation.
Pourriez vous m'aider s'il vous plait ? Ai je oublié quelque chose? Sinon y a t il un moyen quelconque de retrouver cette annotation à runtime?
Merci par avance.
@Inherited
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface require {
}
public interface IServ1 {
@require
void add();
}
public class C1 implements IServ1 {
@Override
public void add() {
// TODO Auto-generated method stub
}
public static void main(String[] args) {
for(Method m:C1.class.getDeclaredMethods()){
System.out.println(m);
for(Annotation a : m.getAnnotations())
System.out.println(a);
System.out.println("");
}
for(Class c:C1.class.getInterfaces()) {
System.out.println(c);
for(Method m:c.getMethods()) {
System.out.println(m);
for(Annotation a : m.getAnnotations())
System.out.println(a);
}
}
}
}
Partager