Package java.lang.reflect
Interface WildcardType
- All Superinterfaces:
Type
- All Known Implementing Classes:
WildcardTypeImpl
public interface WildcardType extends Type
A pattern type, such as the upper bounded wildcard
? extends Closeable or the lower bounded wildcard ? super String.
Although this interface permits an arbitrary number of upper and lower bounds, all wildcard types of Java language programs are in one of two forms:
- No lower bound and one upper bound. Such types are
written like
? extends java.lang.Number. When the upper bound isjava.lang.Object, theextends java.lang.Objectsuffix is optional:Set<?>is shorthand forSet<? extends java.lang.Object>. - One lower bound and an upper bound of
java.lang.Object. Such types are written like? super java.lang.String.
-
Method Summary
Modifier and Type Method Description Type[]getLowerBounds()Returns the array of types that represent the lower bounds of this type.Type[]getUpperBounds()Returns the array of types that represent the upper bounds of this type.
-
Method Details
-
getUpperBounds
Type[] getUpperBounds()Returns the array of types that represent the upper bounds of this type. The default upper bound isObject.- Returns:
- an array containing the upper bounds types
- Throws:
TypeNotPresentException- if any of the bounds points to a missing typeMalformedParameterizedTypeException- if any bound points to a type that cannot be instantiated for some reason
-
getLowerBounds
Type[] getLowerBounds()Returns the array of types that represent the lower bounds of this type. The default lower bound isnull, in which case an empty array is returned. Since only one lower bound is allowed, the returned array's length will never exceed one.- Returns:
- an array containing the lower bounds types
- Throws:
TypeNotPresentException- if any of the bounds points to a missing typeMalformedParameterizedTypeException- if any of the bounds points to a type that cannot be instantiated for some reason
-