code: private Collection<?> getArrayPropertyAsCollection(FieldData field) {
          Class<?> arrayType = field.metaData.getArrayTypeOfTypeParameter();
          Object[] elements = (Object[]) resolvePropertyTypedValue(field, arrayType);
  
          if (elements != null) {
              @SuppressWarnings("unchecked")
              Collection<Object> collection = ReflectionUtil.instantiateCollectionType((Class<Collection<Object>>) field.metaData.getType());
              Collections.addAll(collection, elements);
              return collection;
          }
  
          return null;
      }
docs: The fieldType is a collection. However, the component type of
  the collection is a property type, e.g. List&lt;String&gt;. We must
  fetch the property with the array-type of the component type (e.g. String[])
  and add the values to a new instance of Collection&lt;T&gt;.
  
  @return a collection of the resolved values, or <code>null</code> if no value could be resolved.