code: protected Class<?> getCollectionElementType(Type genericType) throws ConversionException {
          if (genericType instanceof ParameterizedType) {
              ParameterizedType parameterizedType = (ParameterizedType) genericType;
              Type[] typeArguments = parameterizedType.getActualTypeArguments();
              if (typeArguments.length != 1) {
                  throw new ConversionException("Types with more then one generic are not supported");
              }
  
              Type type = typeArguments[0];
              if (type instanceof Class) {
                  return (Class<?>) type;
              }
  
              throw new ConversionException(String.format("Could not resolve generic type <%s>", type));
          }
          return String.class;
      }
docs: Get collection element type for given type. Given type type should
  be assignable from {@link Collection}. For collections without
  generic returns {@link String}.