code: @SuppressWarnings("unchecked")
      public <T> T getAnnotation(final Class<? extends Annotation> annotationClass) {
          final Annotation annotation = accessibleObject.getAnnotation(annotationClass);
          if (annotation != null) {
              return (T) annotation;
          }
  
          for (final Annotation parameterAnnoation : parameterAnnotations) {
              if (parameterAnnoation.annotationType() == annotationClass) {
                  return (T) parameterAnnoation;
              }
          }
  
          return null;
      }
docs: Returns the {@link Annotation} object if an annotation for the specified
  type is present on the injection target, otherwise null.
  
  If the {@link AccessibleObject} of the injection target is of type
  {@link Method} or {@link Constructor}, then the {@link Annotation} may be
  specified on the {@link AccessibleObject} or on the corresponding
  parameter.
  
  @param annotationClass
  - the Class object corresponding to the annotation type
  @return annotation for the specified annotation type if present on this
  element, otherwise null
  @throws NullPointerException
  - if the given annotation class is null