code: @Override
     public Object getAnnotation()
     {
        try
        {
           if (isOnField())
           {
              Class<?> clazz = cl.loadClass(className);
              while (!clazz.equals(Object.class))
              {
                 try
                 {
                    Field field = SecurityActions.getDeclaredField(clazz, memberName);
                    return field.getAnnotation(annotationClass);
                 }
                 catch (Throwable t)
                 {
                    clazz = clazz.getSuperclass();
                 }
              }
           }
           else if (isOnMethod())
           {
              Class<?> clazz = cl.loadClass(className);
              Class<?>[] params = new Class<?>[parameterTypes.size()];
              int i = 0;
              for (String paramClazz : parameterTypes)
              {
                 params[i] = cl.loadClass(paramClazz);
                 i++;
              }
              while (!clazz.equals(Object.class))
              {
                 try
                 {
                    Method method = SecurityActions.getDeclaredMethod(clazz, memberName, params);
                    return method.getAnnotation(annotationClass);
                 }
                 catch (Throwable t)
                 {
                    clazz = clazz.getSuperclass();
                 }
              }
           }
           else
           { // onclass
              Class<?> clazz = cl.loadClass(className);
              return clazz.getAnnotation(annotationClass);
           }
        }
        catch (Exception e)
        {
           log.error(e.getMessage(), e);
        }
  
        return null;
     }
docs: Get the annotation.
  
  @return the annotation.