code: static Class<?> normalizeContainerType(Class<?> containerType) {
          if (containerType == Iterable.class ||
              containerType == List.class ||
              containerType == Collection.class) {
              return ArrayList.class;
          }
          if (containerType == Set.class) {
              return LinkedHashSet.class;
          }
          if (List.class.isAssignableFrom(containerType) ||
              Set.class.isAssignableFrom(containerType)) {
              try {
                  // Only if there is a default constructor.
                  containerType.getConstructor();
                  return containerType;
              } catch (Throwable cause) {
                  throw new IllegalArgumentException("Unsupported container type: " + containerType.getName(),
                                                     cause);
              }
          }
          throw new IllegalArgumentException("Unsupported container type: " + containerType.getName());
      }
docs: Normalizes the specified container {@link Class}. Throws {@link IllegalArgumentException}
  if it is not able to be normalized.