public class TypeLiteral<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 of
 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<Integer>"
 | Modifier | Constructor and Description | 
|---|---|
| protected  | TypeLiteral()Constructs a new type literal. | 
| Modifier and Type | Method and Description | 
|---|---|
| boolean | equals(Object o) | 
| static <T> TypeLiteral<T> | get(Class<T> type)Gets type literal for the given  Classinstance. | 
| static TypeLiteral<?> | get(Type type)Gets type literal for the given  Typeinstance. | 
| 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. | 
| 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. | 
| Type | getType()Gets underlying  Typeinstance. | 
| int | hashCode() | 
| String | toString() | 
protected TypeLiteral()
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 final Class<? super T> getRawType()
public final Type getType()
Type instance.public static TypeLiteral<?> get(Type type)
Type instance.public static <T> TypeLiteral<T> get(Class<T> type)
Class instance.public TypeLiteral<?> getSupertype(Class<?> supertype)
supertype. For example, if this is ArrayList<String>, this returns Iterable<String> given the input Iterable.class.supertype - a superclass of, or interface implemented by, this.public TypeLiteral<?> getFieldType(Field field)
field.field - a field defined by this or any superclass.public List<TypeLiteral<?>> getParameterTypes(Member methodOrConstructor)
methodOrConstructor.methodOrConstructor - a method or constructor defined by this or any supertype.public List<TypeLiteral<?>> getExceptionTypes(Member methodOrConstructor)
constructor.methodOrConstructor - a method or constructor defined by this or any supertype.public TypeLiteral<?> getReturnType(Method method)
method.method - a method defined by this or any supertype.Copyright © 2006–2018 Google, Inc.. All rights reserved.