/**
* This class is a holder for generic types so we can work around type erasure. You can read <a
* href="http://gafter.blogspot.fr/2006/12/super-type-tokens.html">this blog post</a> who explains a
* bit more in details what it is about. For example if you want to use at runtime a
* List<Integer> :
* <p/>
* <pre>
* GenericType<List<Integer>> genericType = new GenericType<List<Integer>>() {
* };
* List<Integer> listOfIntegers = new Genson().deserialize("[1,2,3]", genericType);
*
* // if you want to get the standard java.lang.reflect.Type corresponding to List<Integer> from
* // genericType
* Type listOfIntegersType = genericType.getType();
* // listOfIntegersType will be an instance of ParameterizedType with Integer class as type argument
* </pre>
*
* @param <T> the real type
* @author eugen
*/ publicabstractclass GenericType<T>{ privatefinal1.5.0/docs/api/java/lang/reflect/Type.html">Type type; privatefinal Class<T> rawClass;