Here you can find the source of getAnnotation(AnnotatedElement aobj, Class aClass)
public static Object getAnnotation(AnnotatedElement aobj, Class aClass) throws ReflectiveOperationException
//package com.java2s; //License from project: Apache License import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Proxy; public class Main { /**/*from w w w . java2 s . com*/ * Get annotation of an object via reflection */ public static Object getAnnotation(AnnotatedElement aobj, Class aClass) throws ReflectiveOperationException { for (Object a : aobj.getAnnotations()) { if (isAnnotationInstance(aClass, a)) return a; } return null; } private static boolean isAnnotationInstance(Class aClass, Object a) { if (Proxy.isProxyClass(a.getClass())) { for (Class aInterface : a.getClass().getInterfaces()) { if (aInterface.isAssignableFrom(aClass)) { return true; } } } return aClass.isInstance(a); } }