java.lang.reflect
public interface WildcardType extends Type
?
,
which represents any unbounded type. Another example is
? extends Number
, which specifies any type
which is a subclass of Number
(Number
is the upper bound).
? super String
gives the type a less common lower bound,
which means that the type must be either a String
or one
of its superclasses. This can be useful in working with collections.
You may want a method to add instances of a class to a collection
with a more generic type (e.g. adding String
s to
a list of Object
s), but don't want to allow users
to pass in a collection with a more specific type.
Since: 1.5
Method Summary | |
---|---|
Type[] | getLowerBounds()
Returns an array of |
Type[] | getUpperBounds()
Returns an array of |
Returns an array of Type
s, which specify the
lower bounds of this type. The default lower bound is
null
, which causes this method to return an
empty array.
In generating the array of Type
s, each
ParameterizedType
or TypeVariable
is
created, (see the documentation for these classes for details of this
process), if necessary, while all other types are simply
resolved.
Returns: an array of Type
objects, representing
the wildcard type's lower bounds.
Throws: TypeNotPresentException if any of the types referred to by the lower bounds of this type do not actually exist. MalformedParameterizedTypeException if any of the types refer to a type which can not be instantiated.
Returns an array of Type
s, which specify the
upper bounds of this type. The default upper bound is
Object
, which causes this method to return an
array, containing just the Type
instance for
Object
.
In generating the array of Type
s, each
ParameterizedType
or TypeVariable
is
created, (see the documentation for these classes for details of this
process), if necessary, while all other types are simply
resolved.
Returns: an array of Type
objects, representing
the wildcard type's upper bounds.
Throws: TypeNotPresentException if any of the types referred to by the upper bounds of this type do not actually exist. MalformedParameterizedTypeException if any of the types refer to a type which can not be instantiated.