java.lang.Object | |
↳ | com.fasterxml.jackson.core.type.TypeReference<T> |
This generic abstract class is used for obtaining full generics type information
by sub-classing; it must be converted to 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
.
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
_type |
Protected Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
The only reason we define this method (and require implementation
of
Comparable ) is to prevent constructing a
reference without type information. | |||||||||||
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
| |||||||||||
From interface
java.lang.Comparable
|
The only reason we define this method (and require implementation
of Comparable
) is to prevent constructing a
reference without type information.