public abstract class ParameterizedTypeReference<T>
extends java.lang.Object
Type
. In order to capture the generic type and retain it at runtime,
you need to create a subclass (ideally as anonymous inline class) as follows:
ParameterizedTypeReference<List<String>> typeRef = new ParameterizedTypeReference<List<String>>() {};
The resulting typeRef
instance can then be used to obtain a Type
instance that carries the captured parameterized type information at runtime.
For more information on "super type tokens" see the link to Neal Gafter's blog post.
Modifier | Constructor and Description |
---|---|
protected |
ParameterizedTypeReference() |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object obj) |
static <T> ParameterizedTypeReference<T> |
forType(java.lang.reflect.Type type)
Build a
ParameterizedTypeReference wrapping the given type. |
java.lang.reflect.Type |
getType() |
int |
hashCode() |
java.lang.String |
toString() |
public java.lang.reflect.Type getType()
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object
public static <T> ParameterizedTypeReference<T> forType(java.lang.reflect.Type type)
ParameterizedTypeReference
wrapping the given type.type
- a generic type (possibly obtained via reflection,
e.g. from Method.getGenericReturnType()
)ParameterizedTypeReference
-accepting methods