java.lang.reflect
public interface ParameterizedType extends Type
Represents a type which is parameterized over one or more other
types. For example, List<Integer>
is a parameterized
type, with List
parameterized over the type
Integer
.
Instances of this classes are created as needed, during reflection.
On creating a parameterized type, p
, the
GenericTypeDeclaration
corresponding to p
is created and resolved. Each type argument of p
is then created recursively; details of this process are availble
in the documentation of TypeVariable
. This creation
process only happens once; repetition has no effect.
Implementors of this interface must implement an appropriate
equals()
method. This method should equate any
two instances of the implementing class that have the same
GenericTypeDeclaration
and Type
parameters.
Since: 1.5
See Also: GenericDeclaration TypeVariable
Method Summary | |
---|---|
Type[] | getActualTypeArguments()
Returns an array of |
Type | getOwnerType()
Returns the type of which this type is a member. |
Type | getRawType()
Returns a version of this type without parameters, which corresponds
to the class or interface which declared the type. |
Returns an array of Type
objects, which gives
the parameters of this type.
Note: the returned array may be empty. This
occurs if the supposed ParameterizedType
is simply
a normal type wrapped inside a parameterized type.
Returns: an array of Type
s, representing the arguments
of this type.
Throws: TypeNotPresentException if any of the types referred to by the parameters of this type do not actually exist. MalformedParameterizedTypeException if any of the types refer to a type which can not be instantiated.
Top<String>.Bottom<Integer>
,
Bottom<Integer>
is a member of
Top<String>
, and so the latter is returned
by this method. Calling this method on top-level types (such as
Top<String>
) returns null.
Returns: the type which owns this type.
Throws: TypeNotPresentException if the owner type referred to by this type do not actually exist. MalformedParameterizedTypeException if the owner type referred to by this type can not be instantiated.
List<Double>
is List
, which was declared by the List
class.
Returns: the raw variant of this type (i.e. the type without parameters).