Here you can find the source of getAnnotationValue(Object aObj, String aValue)
public static Object getAnnotationValue(Object aObj, String aValue) throws ReflectiveOperationException
//package com.java2s; //License from project: Apache License import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Proxy; public class Main { /**// w ww.j av a 2s . c o m * Get annotation value of annotation object via reflection */ public static Object getAnnotationValue(Object aObj, String aValue) throws ReflectiveOperationException { return aObj.getClass().getMethod(aValue).invoke(aObj); } /** * Get annotation value of annotation object via reflection */ public static Object getAnnotationValue(AnnotatedElement aobj, Class aClass, String aValue) throws ReflectiveOperationException { return getAnnotationValue(getAnnotation(aobj, aClass), aValue); } /** * 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); } }