code: private <T extends Annotation> T findAnnotation(Class<?> cls, Class<T> annotationClass, String name) {
      Class<?> curr = cls;
      T ann = null;
      while (ann == null && curr != null && !curr.equals(Object.class)) {
        ann = findAnnotationLocal(curr, annotationClass, name);
        curr = curr.getSuperclass();
      }
      return ann;
    }
docs: find annotation on specified member
  
  @param cls
  @param annotationClass
  @param name
  @return