- java.lang.Object
-
- com.google.gson.reflect.TypeToken<T>
-
public class TypeToken<T> extends java.lang.ObjectRepresents a generic typeT. 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<?>orList<? extends CharSequence>.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description private static java.lang.AssertionErrorbuildUnexpectedTypeError(java.lang.reflect.Type token, java.lang.Class<?>... expected)booleanequals(java.lang.Object o)static <T> TypeToken<T>get(java.lang.Class<T> type)Gets type literal for the givenClassinstance.static TypeToken<?>get(java.lang.reflect.Type type)Gets type literal for the givenTypeinstance.static TypeToken<?>getArray(java.lang.reflect.Type componentType)Gets type literal for the array type whose elements are all instances ofcomponentType.static TypeToken<?>getParameterized(java.lang.reflect.Type rawType, java.lang.reflect.Type... typeArguments)Gets type literal for the parameterized type represented by applyingtypeArgumentstorawType.java.lang.Class<? super T>getRawType()Returns the raw (non-generic) type for this type.(package private) static java.lang.reflect.TypegetSuperclassTypeParameter(java.lang.Class<?> subclass)Returns the type from super class's type parameter incanonical form.java.lang.reflect.TypegetType()Gets underlyingTypeinstance.inthashCode()booleanisAssignableFrom(TypeToken<?> token)Deprecated.this implementation may be inconsistent with javac for types with wildcards.booleanisAssignableFrom(java.lang.Class<?> cls)Deprecated.this implementation may be inconsistent with javac for types with wildcards.booleanisAssignableFrom(java.lang.reflect.Type from)Deprecated.this implementation may be inconsistent with javac for types with wildcards.private static booleanisAssignableFrom(java.lang.reflect.Type from, java.lang.reflect.GenericArrayType to)Private helper function that performs some assignability checks for the provided GenericArrayType.private static booleanisAssignableFrom(java.lang.reflect.Type from, java.lang.reflect.ParameterizedType to, java.util.Map<java.lang.String,java.lang.reflect.Type> typeVarMap)Private recursive helper function to actually do the type-safe checking of assignability.private static booleanmatches(java.lang.reflect.Type from, java.lang.reflect.Type to, java.util.Map<java.lang.String,java.lang.reflect.Type> typeMap)Checks if two types are the same or are equivalent under a variable mapping given in the type map that was provided.java.lang.StringtoString()private static booleantypeEquals(java.lang.reflect.ParameterizedType from, java.lang.reflect.ParameterizedType to, java.util.Map<java.lang.String,java.lang.reflect.Type> typeVarMap)Checks if two parameterized types are exactly equal, under the variable replacement described in the typeVarMap.
-
-
-
Field Detail
-
rawType
final java.lang.Class<? super T> rawType
-
type
final java.lang.reflect.Type type
-
hashCode
final int hashCode
-
-
Constructor Detail
-
TypeToken
protected TypeToken()
Constructs a new type literal. Derives represented class from type parameter.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.
-
TypeToken
TypeToken(java.lang.reflect.Type type)
Unsafe. Constructs a type literal manually.
-
-
Method Detail
-
getSuperclassTypeParameter
static java.lang.reflect.Type getSuperclassTypeParameter(java.lang.Class<?> subclass)
Returns the type from super class's type parameter incanonical form.
-
getRawType
public final java.lang.Class<? super T> getRawType()
Returns the raw (non-generic) type for this type.
-
getType
public final java.lang.reflect.Type getType()
Gets underlyingTypeinstance.
-
isAssignableFrom
@Deprecated public boolean isAssignableFrom(java.lang.Class<?> cls)
Deprecated.this implementation may be inconsistent with javac for types with wildcards.Check if this type is assignable from the given class object.
-
isAssignableFrom
@Deprecated public boolean isAssignableFrom(java.lang.reflect.Type from)
Deprecated.this implementation may be inconsistent with javac for types with wildcards.Check if this type is assignable from the given Type.
-
isAssignableFrom
@Deprecated public boolean isAssignableFrom(TypeToken<?> token)
Deprecated.this implementation may be inconsistent with javac for types with wildcards.Check if this type is assignable from the given type token.
-
isAssignableFrom
private static boolean isAssignableFrom(java.lang.reflect.Type from, java.lang.reflect.GenericArrayType to)Private helper function that performs some assignability checks for the provided GenericArrayType.
-
isAssignableFrom
private static boolean isAssignableFrom(java.lang.reflect.Type from, java.lang.reflect.ParameterizedType to, java.util.Map<java.lang.String,java.lang.reflect.Type> typeVarMap)Private recursive helper function to actually do the type-safe checking of assignability.
-
typeEquals
private static boolean typeEquals(java.lang.reflect.ParameterizedType from, java.lang.reflect.ParameterizedType to, java.util.Map<java.lang.String,java.lang.reflect.Type> typeVarMap)Checks if two parameterized types are exactly equal, under the variable replacement described in the typeVarMap.
-
buildUnexpectedTypeError
private static java.lang.AssertionError buildUnexpectedTypeError(java.lang.reflect.Type token, java.lang.Class<?>... expected)
-
matches
private static boolean matches(java.lang.reflect.Type from, java.lang.reflect.Type to, java.util.Map<java.lang.String,java.lang.reflect.Type> typeMap)Checks if two types are the same or are equivalent under a variable mapping given in the type map that was provided.
-
hashCode
public final int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public final boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
toString
public final java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
get
public static TypeToken<?> get(java.lang.reflect.Type type)
Gets type literal for the givenTypeinstance.
-
get
public static <T> TypeToken<T> get(java.lang.Class<T> type)
Gets type literal for the givenClassinstance.
-
getParameterized
public static TypeToken<?> getParameterized(java.lang.reflect.Type rawType, java.lang.reflect.Type... typeArguments)
Gets type literal for the parameterized type represented by applyingtypeArgumentstorawType.
-
getArray
public static TypeToken<?> getArray(java.lang.reflect.Type componentType)
Gets type literal for the array type whose elements are all instances ofcomponentType.
-
-