public abstract class TypeReference<T> extends Object implements Comparable<TypeReference<T>>
ResolvedType implementation
(implemented by JavaType from "databind" bundle) to be used.
Class is based on ideas from
http://gafter.blogspot.com/2006/12/super-type-tokens.html,
Additional idea (from a suggestion made in comments of the article)
is to require bogus implementation of Comparable
(any such generic interface would do, as long as it forces a method
with generic type to be implemented).
to ensure that a Type argument is indeed given.
Usage is by sub-classing: here is one way to instantiate reference
to generic type List<Integer>:
TypeReference ref = new TypeReference<List<Integer>>() { };
which can be passed to methods that accept TypeReference, or resolved
using TypeFactory to obtain ResolvedType.| Modifier | Constructor and Description |
|---|---|
protected |
TypeReference() |
| Modifier and Type | Method and Description |
|---|---|
int |
compareTo(TypeReference<T> o)
The only reason we define this method (and require implementation
of
Comparable) is to prevent constructing a
reference without type information. |
Type |
getType() |
protected final Type _type
public Type getType()
public int compareTo(TypeReference<T> o)
Comparable) is to prevent constructing a
reference without type information.compareTo in interface Comparable<TypeReference<T>>Copyright © 2014 FasterXML. All Rights Reserved.