### Question:
TypeRef { public final Type type() { return type; } protected  TypeRef(); private  TypeRef(Type type); final Type type(); @SuppressWarnings("unchecked") final Class<? super T> rawType(); @SuppressWarnings("unchecked") final Class<T> exactRawType(); @Override boolean equals(@Nullable Object obj); @Override int hashCode(); @Override String toString(); static TypeRef<?> from(Type type); static TypeRef<U> from(Class<U> rawType);  }### Answer:
@Test void new_rawType() { var ref = new TypeRef<String>() {}; assertEquals(String.class, ref.type()); }
@Test void new_parameterizedType() { var ref = new TypeRef<List<String>>() {}; assertEquals(StringList.type, ref.type()); }