public class TypeToken<T> extends Object
T
. Java doesn't yet provide a way to
represent generic types, so this class does. Forces clients to create a
subclass of this class which enables retrieval the type information even at
runtime.
For example, to create a type literal for List<String>
, you can
create an empty anonymous inner class:
TypeToken<List<String>> list = new TypeToken<List<String>>() {};
This syntax cannot be used to create type literals that have wildcard
parameters, such as Class<?>
or List<? extends CharSequence>
.
Modifier | Constructor and Description |
---|---|
protected |
TypeToken()
Constructs a new type literal.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o) |
static <T> TypeToken<T> |
get(Class<T> type)
Gets type literal for the given
Class instance. |
static TypeToken<?> |
get(Type type)
Gets type literal for the given
Type instance. |
static TypeToken<?> |
getArray(Type componentType)
Gets type literal for the array type whose elements are all instances of
componentType . |
static TypeToken<?> |
getParameterized(Type rawType,
Type... typeArguments)
Gets type literal for the parameterized type represented by applying
typeArguments to rawType . |
Class<? super T> |
getRawType()
Returns the raw (non-generic) type for this type.
|
Type |
getType()
Gets underlying
Type instance. |
int |
hashCode() |
boolean |
isAssignableFrom(Class<?> cls)
Deprecated.
this implementation may be inconsistent with javac for types with
wildcards.
|
boolean |
isAssignableFrom(Type from)
Deprecated.
this implementation may be inconsistent with javac for types with
wildcards.
|
boolean |
isAssignableFrom(TypeToken<?> token)
Deprecated.
this implementation may be inconsistent with javac for types with
wildcards.
|
String |
toString() |
protected TypeToken()
Clients create an empty anonymous subclass. Doing so embeds the type parameter in the anonymous class's type hierarchy so we can reconstitute it at runtime despite erasure.
public static <T> TypeToken<T> get(Class<T> type)
Class
instance.public static TypeToken<?> getParameterized(Type rawType, Type... typeArguments)
typeArguments
to rawType
.public static TypeToken<?> getArray(Type componentType)
componentType
.public final Class<? super T> getRawType()
public final Type getType()
Type
instance.@Deprecated public boolean isAssignableFrom(Class<?> cls)
@Deprecated public boolean isAssignableFrom(Type from)
@Deprecated public boolean isAssignableFrom(TypeToken<?> token)