code: public static <T> TypeToken<T> of(Type type) {
      Assert.notNull(type, "type");
      return new TypeToken<T>(type);
    }
docs: Returns a TypeLiteral for the {@code type}.
  
  @throws IllegalArgumentException if {@code type} is null or if a raw type cannot be resolved