package data;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
public class DemoMethods2 {
public static void main(String[] args) throws Exception {
getDeclaredMethod("foo");
getDeclaredMethod("foo");
getDeclaredMethod("foo");
getDeclaredMethod("foo");
System.out.println(getFirstDeclaredAnnotation("foo"));
System.out.println(getFirstDeclaredAnnotation("foo"));
System.out.println(getFirstDeclaredAnnotation("foo"));
System.out.println(getFirstDeclaredAnnotation("foo"));
System.out.println(getFirstDeclaredAnnotation("foo"));
}
@Wiggle("asc")
public void foo() {
}
public static Method getDeclaredMethod(String name) {
try {
Method m = DemoMethods2.class.getDeclaredMethod(name);
System.out.println("returning " + m);
return m;
} catch (NoSuchMethodException nsme) {
System.out.println("No such method called foo");
return null;
}
}
public static Annotation getFirstDeclaredAnnotation(String name) throws Exception {
Annotation[] annos = getDeclaredMethod(name).getDeclaredAnnotations();
if (annos == null || annos.length == 0) {
return null;
} else {
return annos[0];
}
}
}