TypeDescriptor (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.lang.invoke, interface: TypeDescriptor
Keywords: java.lang.invoke.TypeDescriptor interface

# Interface TypeDescriptor

All Known Subinterfaces:
  `ClassDesc, MethodTypeDesc, TypeDescriptor.OfField<F>, TypeDescriptor.OfMethod<F,M>`

All Known Implementing Classes:
  `Class, MethodType`

public interface TypeDescriptor
An entity that has a type descriptor.

Since:
  12

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static interface`
  `TypeDescriptor.OfField<F extends TypeDescriptor.OfField<F>>`
  An entity that has a field type descriptor.
  `static interface`
  `TypeDescriptor.OfMethod<F extends TypeDescriptor.OfField<F>, M extends TypeDescriptor.OfMethod<F,M>>`
  An entity that has a method type descriptor Method descriptors conforming to JVMS 4.3.3 can be described nominally via `MethodType::describeConstable`; otherwise they cannot be described nominally.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `descriptorString()`
  Returns the descriptor string for this `TypeDescriptor` object.

- ## Method Details

  - ### descriptorString

    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 4.3. The result descriptor string can be used to produce a nominal descriptor. Otherwise, the result string is not a type descriptor. No nominal descriptor can be produced from the result string.
    Returns:
      the descriptor string for this `TypeDescriptor` object
    See Java Virtual Machine Specification:
      4.3.2 Field Descriptors
      4.3.3 Method Descriptors