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>>() {};
Value.as(TypeLiteral)
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.