package onlyfun.caterpillar;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
public class AnalysisApp {
public static void main(String[] args)
throws NoSuchMethodException {
Class<SomeClass3> c = SomeClass3.class;
// 因為SomeAnnotation標示於doSomething()方法上
// 所以要取得doSomething()方法的Method實例
Method method = c.getMethod("doSomething");
// 如果SomeAnnotation存在的話
if(method.isAnnotationPresent(SomeAnnotation.class)) {
System.out.println("找到 @SomeAnnotation");
// 取得SomeAnnotation
SomeAnnotation annotation =
method.getAnnotation(SomeAnnotation.class);
// 取得value成員值
System.out.println("\tvalue = " + annotation.value());
// 取得name成員值
System.out.println("\tname = " + annotation.name());
}
else {
System.out.println("找不到 @SomeAnnotation");
}
// 取得doSomething()方法上所有的Annotation
Annotation[] annotations = method.getAnnotations();
// 顯示Annotation名稱
for(Annotation annotation : annotations) {
System.out.println("Annotation名稱:" +
annotation.annotationType().getName());
}
}
}