# WildcardType

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Summary:[Methods](https://developer.android.com/reference/java/lang/reflect/WildcardType#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/java/lang/reflect/WildcardType#inhmethods)  

# WildcardType

`
public


interface
WildcardType
`  
`


implements

`[Type](https://developer.android.com/reference/java/lang/reflect/Type)`


`

|--------------------------------|
| java.lang.reflect.WildcardType |

<br />

*** ** * ** ***

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

## Summary

|                                                                                                                                       ### Public methods                                                                                                                                        ||
|--------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract `[Type[]](https://developer.android.com/reference/java/lang/reflect/Type) | ` `[getLowerBounds](https://developer.android.com/reference/java/lang/reflect/WildcardType#getLowerBounds())`() ` Returns an array of`Type`objects representing the lower bound(s) of this type variable. |
| ` abstract `[Type[]](https://developer.android.com/reference/java/lang/reflect/Type) | ` `[getUpperBounds](https://developer.android.com/reference/java/lang/reflect/WildcardType#getUpperBounds())`() ` Returns an array of`Type`objects representing the upper bound(s) of this type variable. |

| ### Inherited methods |
|-----------------------|---|
| From interface` `[java.lang.reflect.Type](https://developer.android.com/reference/java/lang/reflect/Type)` ` |-------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` default `[String](https://developer.android.com/reference/java/lang/String) | ` `[getTypeName](https://developer.android.com/reference/java/lang/reflect/Type#getTypeName())`() ` Returns a string describing this type, including information about any type parameters. | ||

## Public methods

### getLowerBounds

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract Type[] getLowerBounds ()
```

Returns an array of`Type`objects representing the lower bound(s) of this type variable. 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](https://developer.android.com/reference/java/lang/reflect/ParameterizedType)for the details of the creation process for parameterized types).
- Otherwise, B is resolved.

<br />

<br />

|                                                                         Returns                                                                          ||
|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|
| [Type[]](https://developer.android.com/reference/java/lang/reflect/Type) | an array of Types representing the lower bound(s) of this type variable <br /> |

|                                                                                                               Throws                                                                                                                ||
|--------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
| [TypeNotPresentException](https://developer.android.com/reference/java/lang/TypeNotPresentException)                                 | if any of the bounds refers to a non-existent type declaration                                |
| [MalformedParameterizedTypeException](https://developer.android.com/reference/java/lang/reflect/MalformedParameterizedTypeException) | if any of the bounds refer to a parameterized type that cannot be instantiated for any reason |

### getUpperBounds

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract Type[] getUpperBounds ()
```

Returns an array of`Type`objects representing the upper bound(s) of this type variable. 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](https://developer.android.com/reference/java/lang/reflect/ParameterizedType)for the details of the creation process for parameterized types).
- Otherwise, B is resolved.

<br />

<br />

|                                                                         Returns                                                                          ||
|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|
| [Type[]](https://developer.android.com/reference/java/lang/reflect/Type) | an array of Types representing the upper bound(s) of this type variable <br /> |

|                                                                                                               Throws                                                                                                                ||
|--------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
| [TypeNotPresentException](https://developer.android.com/reference/java/lang/TypeNotPresentException)                                 | if any of the bounds refers to a non-existent type declaration                                |
| [MalformedParameterizedTypeException](https://developer.android.com/reference/java/lang/reflect/MalformedParameterizedTypeException) | if any of the bounds refer to a parameterized type that cannot be instantiated for any reason |