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:

  1. No lower bound and one upper bound. Such types are written like ? extends java.lang.Number. When the upper bound is java.lang.Object, the extends java.lang.Object suffix is optional: Set<?> is shorthand for Set<? extends java.lang.Object>.
  2. 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 is Object.
      Returns:
      an array containing the upper bounds types
      Throws:
      TypeNotPresentException - if any of the bounds points to a missing type
      MalformedParameterizedTypeException - 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 is null, 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 type
      MalformedParameterizedTypeException - if any of the bounds points to a type that cannot be instantiated for some reason