@Nonnull
  protected List<Annotation> harvestQualifiers(@Nonnull Field field) {
    List<Annotation> list = new ArrayList<>();
    Annotation[] annotations = field.getAnnotations();
    for (Annotation annotation : annotations) {
      if (AnnotationUtils.isAnnotatedWith(annotation, Qualifier.class)) {
        if (BindTo.class.isAssignableFrom(annotation.getClass())) {
          continue;
        }

        // special case for @Named
        if (Named.class.isAssignableFrom(annotation.getClass())) {
          Named named = (Named) annotation;
          if (isBlank(named.value())) {
            list.add(named(getPropertyName(field.getName())));
            continue;
          }
        }
        list.add(annotation);
      }
    }
    return list;
  }
 @Nonnull
 public static List<Annotation> harvestQualifiers(@Nonnull Class<?> klass) {
   requireNonNull(klass, "Argument 'class' must not be null");
   List<Annotation> list = new ArrayList<>();
   Annotation[] annotations = klass.getAnnotations();
   for (Annotation annotation : annotations) {
     if (AnnotationUtils.isAnnotatedWith(annotation, Qualifier.class)) {
       // special case @BindTo is only used during tests
       if (BindTo.class.isAssignableFrom(annotation.getClass())) {
         continue;
       }
       // special case for @Named
       if (Named.class.isAssignableFrom(annotation.getClass())) {
         Named named = (Named) annotation;
         if (isBlank(named.value())) {
           list.add(named(getPropertyName(klass)));
           continue;
         }
       }
       list.add(annotation);
     }
   }
   return list;
 }