code: protected List<Field> getFields(Class<?> clazz) {
          List<Field> fields = new ArrayList<Field>();
  
          while (clazz != null && !isBoundaryClass(clazz)) {
              for (Field field : clazz.getDeclaredFields()) {
                  if (!field.isAnnotationPresent(Inject.class)) {
                      continue;
                  }
                  fields.add(field);
              }
              clazz = clazz.getSuperclass();
          }
          return fields;
      }
docs: <p>getFields.</p>
  
  @param clazz a {@link java.lang.Class} object.
  @return a {@link java.util.List} object.