T
- the generic type parameter.public class GenericType<T>
extends java.lang.Object
T
.
Supports in-line instantiation of objects that represent generic types with
actual type parameters. An object that represents any parameterized type may
be obtained by sub-classing GenericType
. Alternatively, an object
representing a concrete parameterized type can be created using a
GenericType(java.lang.reflect.Type)
and manually specifying
the actual (parameterized) type
.
For example:
GenericType<List<String>> stringListType = new GenericType<List<String>>() {};
Or:
public class MyGenericType extends GenericType<List<String>> { ... } ... MyGenericType stringListType = new MyGenericType();
Note that due to the Java type erasure limitations the parameterized type information
must be specified on a subclass, not just during the instance creation. For example,
the following case would throw an IllegalArgumentException
:
public class MyGenericType<T> extends GenericType<T> { ... } ... // The type is only specified on instance, not in a sub-class MyGenericType<List<String>> stringListType = new MyGenericType<List<String>>();
Modifier | Constructor and Description |
---|---|
protected |
GenericType()
Constructs a new generic type, deriving the generic type and class from
type parameter.
|
|
GenericType(java.lang.reflect.Type genericType)
Constructs a new generic type, supplying the generic type
information and deriving the class.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object obj) |
static GenericType |
forInstance(java.lang.Object instance)
Create a
generic type from a
Java instance . |
java.lang.Class<?> |
getRawType()
Returns the object representing the class or interface that declared
the type represented by this generic type instance.
|
java.lang.reflect.Type |
getType()
Retrieve the type represented by the generic type instance.
|
int |
hashCode() |
java.lang.String |
toString() |
protected GenericType()
java.lang.IllegalArgumentException
- in case the generic type parameter value is not
provided by any of the subclasses.public GenericType(java.lang.reflect.Type genericType)
genericType
- the generic type.java.lang.IllegalArgumentException
- if genericType is null
or not an instance of
Class
or ParameterizedType
whose raw
type is an instance of Class
.public static GenericType forInstance(java.lang.Object instance)
generic type
from a
Java instance
.
If the supplied instance is a GenericEntity
, the generic type
will be computed using the GenericEntity.getType()
.
Otherwise instance.getClass()
will be used.
instance
- Java instance for which the GenericType
description should be created.GenericType
describing the Java instance
.public final java.lang.reflect.Type getType()
public final java.lang.Class<?> getRawType()
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object