TypeLiteral implements Serializable { public static <R> TypeLiteral<R> of(Type type) { Objects.requireNonNull(type, "Type must be given."); return new TypeLiteral<>(type); } TypeLiteral(Type definedType);  TypeLiteral(); static TypeLiteral<R> of(Type type); static Type[] getGenericInterfaceTypeParameters(Class<?> clazz, Class<?> interfaceType); static Type[] getTypeParameters(Type type); final Type getType(); @SuppressWarnings("unchecked") final Class<T> getRawType(); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }
@Test(expected = NullPointerException.class) public void ofDoesNotAcceptNullAsParamter() { TypeLiteral.of(null); }