Package com.fasterxml.jackson.core.type
Class TypeReference<T>
- java.lang.Object
-
- com.fasterxml.jackson.core.type.TypeReference<T>
-
- All Implemented Interfaces:
java.lang.Comparable<TypeReference<T>>
public abstract class TypeReference<T> extends java.lang.Object implements java.lang.Comparable<TypeReference<T>>
This generic abstract class is used for obtaining full generics type information by sub-classing; it must be converted toResolvedType
implementation (implemented byJavaType
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 ofComparable
(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 usingTypeFactory
to obtainResolvedType
.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(TypeReference<T> o)
The only reason we define this method (and require implementation ofComparable
) is to prevent constructing a reference without type information.java.lang.reflect.Type
getType()
-
-
-
Method Detail
-
getType
public java.lang.reflect.Type getType()
-
compareTo
public int compareTo(TypeReference<T> o)
The only reason we define this method (and require implementation ofComparable
) is to prevent constructing a reference without type information.- Specified by:
compareTo
in interfacejava.lang.Comparable<T>
-
-