public abstract 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>>() {};
| Modifier | Constructor and Description |
|---|---|
protected |
TypeLiteral()
Constructs a new type literal.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object obj) |
Class<T> |
getRawType()
Returns the raw class type of the literal.
|
Type |
getType()
Returns the type literal including generic type information.
|
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 Type getType()