docs: public static <T extends Annotation> Set<Field> getAnnotatedFields(Class<? extends Object> clazz,
  			Class<T> annotation) {
  		if (Object.class.equals(clazz)) {
  			return Collections.emptySet();
  		}
  		Set<Field> annotatedFields = new HashSet<Field>();
  		Field[] fields = clazz.getDeclaredFields();
  		for (Field field : fields) {
  			if (field.getAnnotation(annotation) != null) {
  				annotatedFields.add(field);
  			}
  		}
  		annotatedFields.addAll(getAnnotatedFields(clazz.getSuperclass(), annotation));
  		return annotatedFields;
  	}