Class TypeToken<T>

java.lang.Object
com.google.gson.reflect.TypeToken<T>

public class TypeToken<T> extends Object
Represents a generic type 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>.

Author:
Bob Lee, Sven Mawson, Jesse Wilson
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Constructs a new type literal.
  • Method Summary

    Modifier and Type
    Method
    Description
    final boolean
     
    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.
    final Class<? super T>
    Returns the raw (non-generic) type for this type.
    final Type
    Gets underlying Type instance.
    final int
     
    boolean
    Deprecated.
    this implementation may be inconsistent with javac for types with wildcards.
    boolean
    Deprecated.
    this implementation may be inconsistent with javac for types with wildcards.
    boolean
    Deprecated.
    this implementation may be inconsistent with javac for types with wildcards.
    final String
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • 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.

  • Method Details

    • getRawType

      public final Class<? super T> getRawType()
      Returns the raw (non-generic) type for this type.
    • getType

      public final Type getType()
      Gets underlying Type instance.
    • isAssignableFrom

      @Deprecated public boolean isAssignableFrom(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(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.
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object o)
      Overrides:
      equals in class Object
    • toString

      public final String toString()
      Overrides:
      toString in class Object
    • get

      public static TypeToken<?> get(Type type)
      Gets type literal for the given Type instance.
    • get

      public static <T> TypeToken<T> get(Class<T> type)
      Gets type literal for the given Class instance.
    • getParameterized

      public static TypeToken<?> getParameterized(Type rawType, Type... typeArguments)
      Gets type literal for the parameterized type represented by applying typeArguments to rawType.
    • getArray

      public static TypeToken<?> getArray(Type componentType)
      Gets type literal for the array type whose elements are all instances of componentType.