code: private List<Field> collectFieldCandidates(final Object injectedValue, final Class<?> targetClass) {
  
          final List<Field> fieldCandidates = new ArrayList<>();
          Class<?> current = targetClass;
          while (current != Object.class) {
  
              fieldCandidates.addAll(this.collectionDeclaredFieldCandidates(injectedValue, current));
              current = current.getSuperclass();
          }
          return fieldCandidates;
      }
docs: Collects all matching declared fields of the target class and returns the result as a list.
  
  @param injectedValue
  the value that should be injected
  @param targetClass
  the class of the target of the injection whose declared fields should be collected
  
  @return a list of fields that are type-compatible with the injected class.