public class

TypeLiteral

extends Object
java.lang.Object
   ↳ com.google.inject.TypeLiteral<T>

Class Overview

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:

TypeLiteral<List<String>> list = new TypeLiteral<List<String>>() {;}

Along with modeling generic types, this class can resolve type parameters. For example, to figure out what type keySet() returns on a Map<Integer, String>, use this code:

   TypeLiteral<Map<Integer, String>> mapType
       = new TypeLiteral<Map<Integer, String>>() {;
   TypeLiteral keySetType
       = mapType.getReturnType(Map.class.getMethod("keySet"));
   System.out.println(keySetType); // prints "Set"}

Summary

Protected Constructors
TypeLiteral()
Constructs a new type literal.
Public Methods
final boolean equals(Object o)
static <T> TypeLiteral<T> get(Class<T> type)
Gets type literal for the given Class instance.
static TypeLiteral<?> get(Type type)
Gets type literal for the given Type instance.
List<TypeLiteral<?>> getExceptionTypes(Member methodOrConstructor)
Returns the resolved generic exception types thrown by constructor.
TypeLiteral<?> getFieldType(Field field)
Returns the resolved generic type of field.
List<TypeLiteral<?>> getParameterTypes(Member methodOrConstructor)
Returns the resolved generic parameter types of methodOrConstructor.
final Class<? super T> getRawType()
Returns the raw (non-generic) type for this type.
TypeLiteral<?> getReturnType(Method method)
Returns the resolved generic return type of method.
TypeLiteral<?> getSupertype(Class<?> supertype)
Returns the generic form of supertype.
final Type getType()
Gets underlying Type instance.
final int hashCode()
final String toString()
[Expand]
Inherited Methods
From class java.lang.Object

Protected Constructors

protected TypeLiteral ()

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.

Public Methods

public final boolean equals (Object o)

public static TypeLiteral<T> get (Class<T> type)

Gets type literal for the given Class instance.

public static TypeLiteral<?> get (Type type)

Gets type literal for the given Type instance.

public List<TypeLiteral<?>> getExceptionTypes (Member methodOrConstructor)

Returns the resolved generic exception types thrown by constructor.

Parameters
methodOrConstructor a method or constructor defined by this or any supertype.

public TypeLiteral<?> getFieldType (Field field)

Returns the resolved generic type of field.

Parameters
field a field defined by this or any superclass.

public List<TypeLiteral<?>> getParameterTypes (Member methodOrConstructor)

Returns the resolved generic parameter types of methodOrConstructor.

Parameters
methodOrConstructor a method or constructor defined by this or any supertype.

public final Class<? super T> getRawType ()

Returns the raw (non-generic) type for this type.

public TypeLiteral<?> getReturnType (Method method)

Returns the resolved generic return type of method.

Parameters
method a method defined by this or any supertype.

public TypeLiteral<?> getSupertype (Class<?> supertype)

Returns the generic form of supertype. For example, if this is ArrayList<String>, this returns Iterable<String> given the input Iterable.class.

Parameters
supertype a superclass of, or interface implemented by, this.

public final Type getType ()

Gets underlying Type instance.

public final int hashCode ()

public final String toString ()