|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.google.inject.TypeLiteral<T>
public class TypeLiteral<T>
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<Integer>"
Constructor Summary | |
---|---|
protected |
TypeLiteral()
Constructs a new type literal. |
Method Summary | ||
---|---|---|
boolean |
equals(Object o)
|
|
static
|
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 . |
|
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 Type instance. |
|
int |
hashCode()
|
|
String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
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.
Method Detail |
---|
public final Class<? super T> getRawType()
public final Type getType()
Type
instance.
public final int hashCode()
hashCode
in class Object
public final boolean equals(Object o)
equals
in class Object
public final String toString()
toString
in class Object
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.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |