code: public static Type newArrayType(Type componentType) {
      if (componentType instanceof Class<?>) {
        return newArrayType((Class<?>) componentType);
      }
      final TypeVariable<?> var = TypeVariableGenerator.freshTypeVariable("E");
      return new TypeResolver().where(var, componentType).resolveType(new GenericArrayType() {
        @Override public Type getGenericComponentType() { return var; }
      });
    }
docs: Returns a new array type with {@code componentType}.