code: private Object postProcessResolvedValue(FieldData fieldData, Object value) {
          // For convenience, NEBA guarantees that any mappable collection-typed field is never <code>null</code> but rather
          // an empty collection, in case no non-<code>null</code> default value was provided and the field is not Lazy.
          boolean preventNullCollection =
                  value == null &&
                          !fieldData.metaData.isLazy() &&
                          fieldData.metaData.isInstantiableCollectionType() &&
                          getField(fieldData) == null;
  
          @SuppressWarnings("unchecked")
          Object defaultValue = preventNullCollection ? instantiateCollectionType((Class<Collection>) fieldData.metaData.getType()) : null;
  
          // Provide the custom mappers with the default value in case of empty collections for convenience
          value = applyCustomMappings(fieldData, value == null ? defaultValue : value);
  
          return value == null ? defaultValue : value;
      }
docs: Implements the NEBA contracts for fields, for instance guarantees that collection-typed fields are never <code>null</code>. Applies
  {@link AnnotatedFieldMapper custom field mappers}.
  
  @param fieldData must not be <code>null</code>.
  @param value     can be <code>null</code>.
  @return the post-processed value, can be <code>null</code>.