code: @Override
      public Collection<EnhancedAnnotatedField<?, ?>> getEnhancedFields(Class<? extends Annotation> annotationType) {
          if (annotatedFields == null) {
              // Build collection from class hierarchy
              ArrayList<EnhancedAnnotatedField<?, ?>> aggregatedFields = new ArrayList<EnhancedAnnotatedField<?, ?>>(this.declaredAnnotatedFields.get(annotationType));
              if ((superclass != null) && (superclass.getJavaClass() != Object.class)) {
                  aggregatedFields.addAll(superclass.getEnhancedFields(annotationType));
              }
              return Collections.unmodifiableCollection(aggregatedFields);
          } else {
              // Return results collected directly from AnnotatedType
              return annotatedFields.get(annotationType);
          }
      }
docs: Gets the abstracted field annotated with a specific annotation type
  <p/>
  If the fields map is null, initialize it first
  
  @param annotationType The annotation type to match
  @return A set of matching abstracted fields, null if none are found.