## Uses of Interface
java.lang.constant.MethodTypeDesc

- Packages that use MethodTypeDesc
  Package | Description
  --- | ---
  java.lang.constant | Classes and interfaces to represent nominal descriptors for run-time entities such as classes or method handles, and classfile entities such as constant pool entries or `invokedynamic` call sites.
  java.lang.invoke | The `java.lang.invoke` package provides low-level primitives for interacting with the Java Virtual Machine.

- - ### Uses of MethodTypeDesc in java.lang.constant

    Methods in java.lang.constant that return MethodTypeDesc
    Modifier and Type | Method | Description
    --- | --- | ---
    `MethodTypeDesc` | MethodTypeDesc.`changeParameterType​(int index, ClassDesc paramType)` | Returns a MethodTypeDesc that is identical to this one, except that a single parameter type has been changed to the specified type.
    `MethodTypeDesc` | MethodTypeDesc.`changeReturnType​(ClassDesc returnType)` | Returns a MethodTypeDesc that is identical to this one, except with the specified return type.
    `MethodTypeDesc` | MethodTypeDesc.`dropParameterTypes​(int start, int end)` | Returns a MethodTypeDesc that is identical to this one, except that a range of parameter types have been removed.
    `MethodTypeDesc` | MethodTypeDesc.`insertParameterTypes​(int pos, ClassDesc... paramTypes)` | Returns a MethodTypeDesc that is identical to this one, except that a range of additional parameter types have been inserted.
    `MethodTypeDesc` | DynamicCallSiteDesc.`invocationType()` | Returns a `MethodTypeDesc` describing the invocation type that would appear in the `NameAndType` operand of the `invokedynamic`.
    `MethodTypeDesc` | MethodHandleDesc.`invocationType()` | Returns a `MethodTypeDesc` describing the invocation type of the method handle described by this nominal descriptor.
    `static MethodTypeDesc` | MethodTypeDesc.`of​(ClassDesc returnDesc, ClassDesc... paramDescs)` | Returns a MethodTypeDesc given the return type and parameter types.
    `static MethodTypeDesc` | MethodTypeDesc.`ofDescriptor​(String descriptor)` | Creates a MethodTypeDesc given a method descriptor string.

    Methods in java.lang.constant with parameters of type MethodTypeDesc
    Modifier and Type | Method | Description
    --- | --- | ---
    `default MethodHandleDesc` | MethodHandleDesc.`asType​(MethodTypeDesc type)` | Returns a MethodHandleDesc that describes this method handle adapted to a different type, as if by `MethodHandle.asType(MethodType)`.
    `static DynamicCallSiteDesc` | DynamicCallSiteDesc.`of​(DirectMethodHandleDesc bootstrapMethod, MethodTypeDesc invocationType)` | Creates a nominal descriptor for an `invokedynamic` call site whose bootstrap method has no static arguments and for which the name parameter is `ConstantDescs.DEFAULT_NAME`.
    `static DynamicCallSiteDesc` | DynamicCallSiteDesc.`of​(DirectMethodHandleDesc bootstrapMethod, String invocationName, MethodTypeDesc invocationType)` | Creates a nominal descriptor for an `invokedynamic` call site whose bootstrap method has no static arguments.
    `static DynamicCallSiteDesc` | DynamicCallSiteDesc.`of​(DirectMethodHandleDesc bootstrapMethod, String invocationName, MethodTypeDesc invocationType, ConstantDesc... bootstrapArgs)` | Creates a nominal descriptor for an `invokedynamic` call site.
    `static DirectMethodHandleDesc` | MethodHandleDesc.`ofMethod​(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String name, MethodTypeDesc lookupMethodType)` | Creates a MethodHandleDesc corresponding to an invocation of a declared method or constructor.
    `DynamicCallSiteDesc` | DynamicCallSiteDesc.`withNameAndType​(String invocationName, MethodTypeDesc invocationType)` | Returns a nominal descriptor for an `invokedynamic` call site whose bootstrap and bootstrap arguments are the same as this one, but with the specified invocationName and invocation invocationType

  - ### Uses of MethodTypeDesc in java.lang.invoke

    Methods in java.lang.invoke that return types with arguments of type MethodTypeDesc
    Modifier and Type | Method | Description
    --- | --- | ---
    `Optional<MethodTypeDesc>` | MethodType.`describeConstable()` | Return a nominal descriptor for this instance, if one can be constructed, or an empty `Optional` if one cannot be.