# TypeDescriptor

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Summary: [Nested Classes](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor#nestedclasses) \| [Methods](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor#pubmethods)  

# TypeDescriptor


`
public


interface
TypeDescriptor
`


`


`

|---------------------------------|
| java.lang.invoke.TypeDescriptor |

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known indirect subclasses [Class](https://developer.android.com/reference/java/lang/Class)\<T\>, [MethodType](https://developer.android.com/reference/java/lang/invoke/MethodType), [TypeDescriptor.OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)\<F extends [OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)\<F\>\>, [TypeDescriptor.OfMethod](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfMethod)\<F extends [OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)\<F\>, M extends [OfMethod](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfMethod)\<F, M\>\> |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Class](https://developer.android.com/reference/java/lang/Class)\<T\>                                                                                                                                                                                                                                                                    | Instances of the class `Class` represent classes and interfaces in a running Java application.                                                                                   | | [MethodType](https://developer.android.com/reference/java/lang/invoke/MethodType)                                                                                                                                                                                                                                                        | A method type represents the arguments and return type accepted and returned by a method handle, or the arguments and return type passed and expected by a method handle caller. | | [TypeDescriptor.OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)\<F extends [OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)\<F\>\>                                                                                                                   | An entity that has a field type descriptor.                                                                                                                                      | | [TypeDescriptor.OfMethod](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfMethod)\<F extends [OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)\<F\>, M extends [OfMethod](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfMethod)\<F, M\>\> | An entity that has a method type descriptor Method descriptors conforming to JVMS {@jvms 4.3.3} can be described                                                                 | |

<br />

*** ** * ** ***

An entity that has a type descriptor.

## Summary

|                                                                                                                                                                                                                           ### Nested classes                                                                                                                                                                                                                            ||
|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` interface` | [TypeDescriptor.OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)`<F extends `[OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)`<F>>` An entity that has a field type descriptor.                                                                                                                                                                                        |
| ` interface` | [TypeDescriptor.OfMethod](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfMethod)`<F extends `[OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)`<F>, M extends `[OfMethod](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfMethod)`<F, M>>` An entity that has a method type descriptor Method descriptors conforming to JVMS {@jvms 4.3.3} can be described |

|                                                                                                                           ### Public methods                                                                                                                           ||
|--------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract `[String](https://developer.android.com/reference/java/lang/String) | ` `[descriptorString](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor#descriptorString())`() ` Returns the descriptor string for this `TypeDescriptor` object. |

## Public methods

### descriptorString

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

```
public abstract String descriptorString ()
```

Returns the descriptor string for this `TypeDescriptor` object.

If this `TypeDescriptor` object can be described in nominal form,
then this method returns a type descriptor as specified in JVMS {@jvms 4.3}.
The result descriptor string can be used to produce
a `java.lang.constant.ConstantDesc nominal descriptor`.

Otherwise, the result string is not a type descriptor.
No `java.lang.constant.ConstantDesc nominal descriptor`
can be produced from the result string.

<br />

|                                                              Returns                                                              ||
|--------------------------------------------------------------------|---------------------------------------------------------------|
| [String](https://developer.android.com/reference/java/lang/String) | the descriptor string for this `TypeDescriptor` object <br /> |