docs: public static <T extends Annotation> T getAnnotation( Class<?> target, Class<T> annotationClass) {
          Class<?> clazz = target;
          T annotation = clazz.getAnnotation(annotationClass);
          if(annotation != null) {
              return annotation;
          }
          while((clazz = clazz.getSuperclass()) != null) {
              annotation = clazz.getAnnotation(annotationClass);
              if(annotation != null) {
                  return annotation;
              }
          }
          return null;
      }