@Nullable
        private Class<?> getContainerType(Type parameterizedType) {
            final Class<?> rawType = toRawType(parameterizedType);
            if (pathVariable) {
                if (Iterable.class.isAssignableFrom(rawType)) {
                    throw new IllegalArgumentException(
                            "Container type is not supported for a path variable: " + httpElementName +
                            " (" + parameterizedType + ')');
                }
            }

            if (!supportContainer) {
                return null;
            }

            if (rawType == Iterable.class ||
                rawType == List.class ||
                rawType == Collection.class) {
                return ArrayList.class;
            }

            if (rawType == Set.class) {
                return LinkedHashSet.class;
            }

            if (List.class.isAssignableFrom(rawType) ||
                Set.class.isAssignableFrom(rawType)) {
                try {
                    // Only if there is a default constructor.
                    // Note: `requireNonNull()` is redundant here, but it stops Error Prone from complaining
                    //       about an ignored return value.
                    requireNonNull(rawType.getConstructor());
                    return rawType;
                } catch (Throwable cause) {
                    throw new IllegalArgumentException("Unsupported container type: " + rawType.getName(),
                                                       cause);
                }
            }

            return null;
        }
Sets an {@link AggregationStrategy} for the element.
core/src/main/java/com/linecorp/armeria/internal/server/annotation/AnnotatedValueResolver.java