package com.fasterxml.classmate;
import java.io.Serializable;
This class is used to pass full generics type information, and
avoid problems with type erasure (that basically removes most
usable type references from runtime Class objects).
It is based on ideas from
http://gafter.blogspot.com/2006/12/super-type-tokens.html,
Usage is by sub-classing: here is one way to instantiate reference
to generic type List<Integer>
:
GenericType type = new GenericType<List<Integer>>() { };
which can be passed to methods that accept GenericReference
.
/**
* This class is used to pass full generics type information, and
* avoid problems with type erasure (that basically removes most
* usable type references from runtime Class objects).
* It is based on ideas from
* <a href="http://gafter.blogspot.com/2006/12/super-type-tokens.html"
* >http://gafter.blogspot.com/2006/12/super-type-tokens.html</a>,
*<p>
* Usage is by sub-classing: here is one way to instantiate reference
* to generic type <code>List<Integer></code>:
*<pre>
* GenericType type = new GenericType<List<Integer>>() { };
*</pre>
* which can be passed to methods that accept <code>GenericReference</code>.
*/
@SuppressWarnings("serial")
public abstract class GenericType<T>
implements Serializable, java.lang.reflect.Type
{
protected GenericType() { }
}