compact1, compact2, compact3
java.lang.reflect

## Interface WildcardType

- All Superinterfaces:
    Type

      public interface WildcardType
      extends Type

  WildcardType represents a wildcard type expression, such as `?`, `? extends Number`, or `? super Integer`.
  Since:
    1.5

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Type[]` | `getLowerBounds()` | Returns an array of `Type` objects representing the lower bound(s) of this type variable.
    `Type[]` | `getUpperBounds()` | Returns an array of `Type` objects representing the upper bound(s) of this type variable.

    - ### Methods inherited from interface java.lang.reflect.Type

      `getTypeName`

- - ### Method Detail

    - #### getUpperBounds

          Type[] getUpperBounds()

      Returns an array of `Type` objects representing the upper bound(s) of this type variable. Note that if no upper bound is explicitly declared, the upper bound is `Object`.

      For each upper bound B :

      - if B is a parameterized type or a type variable, it is created, (see `ParameterizedType` for the details of the creation process for parameterized types).
      - Otherwise, B is resolved.
      Returns:
        an array of Types representing the upper bound(s) of this type variable
      Throws:
        `TypeNotPresentException` - if any of the bounds refers to a non-existent type declaration
        `MalformedParameterizedTypeException` - if any of the bounds refer to a parameterized type that cannot be instantiated for any reason

    - #### getLowerBounds

          Type[] getLowerBounds()

      Returns an array of `Type` objects representing the lower bound(s) of this type variable. Note that if no lower bound is explicitly declared, the lower bound is the type of `null`. In this case, a zero length array is returned.

      For each lower bound B :

      - if B is a parameterized type or a type variable, it is created, (see `ParameterizedType` for the details of the creation process for parameterized types).
      - Otherwise, B is resolved.
      Returns:
        an array of Types representing the lower bound(s) of this type variable
      Throws:
        `TypeNotPresentException` - if any of the bounds refers to a non-existent type declaration
        `MalformedParameterizedTypeException` - if any of the bounds refer to a parameterized type that cannot be instantiated for any reason

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.