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

- Packages that use DirectMethodHandleDesc
  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.

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

    Fields in java.lang.constant declared as DirectMethodHandleDesc
    Modifier and Type | Field | Description
    --- | --- | ---
    `static DirectMethodHandleDesc` | ConstantDescs.`BSM_ENUM_CONSTANT` | `MethodHandleDesc` representing `ConstantBootstraps.enumConstant`
    `static DirectMethodHandleDesc` | ConstantDescs.`BSM_INVOKE` | `MethodHandleDesc` representing `ConstantBootstraps.invoke`
    `static DirectMethodHandleDesc` | ConstantDescs.`BSM_NULL_CONSTANT` | `MethodHandleDesc` representing `ConstantBootstraps.nullConstant`
    `static DirectMethodHandleDesc` | ConstantDescs.`BSM_PRIMITIVE_CLASS` | `MethodHandleDesc` representing `ConstantBootstraps.primitiveClass`
    `static DirectMethodHandleDesc` | ConstantDescs.`BSM_VARHANDLE_ARRAY` | `MethodHandleDesc` representing `ConstantBootstraps.arrayVarHandle`
    `static DirectMethodHandleDesc` | ConstantDescs.`BSM_VARHANDLE_FIELD` | `MethodHandleDesc` representing `ConstantBootstraps.fieldVarHandle`
    `static DirectMethodHandleDesc` | ConstantDescs.`BSM_VARHANDLE_STATIC_FIELD` | `MethodHandleDesc` representing `ConstantBootstraps.staticVarHandle`

    Methods in java.lang.constant that return DirectMethodHandleDesc
    Modifier and Type | Method | Description
    --- | --- | ---
    `DirectMethodHandleDesc` | DynamicConstantDesc.`bootstrapMethod()` | Returns a `MethodHandleDesc` describing the bootstrap method for this constant.
    `static DirectMethodHandleDesc` | MethodHandleDesc.`of​(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String name, String lookupDescriptor)` | Creates a MethodHandleDesc corresponding to an invocation of a declared method, invocation of a constructor, or access to a field.
    `static DirectMethodHandleDesc` | ConstantDescs.`ofCallsiteBootstrap​(ClassDesc owner, String name, ClassDesc returnType, ClassDesc... paramTypes)` | Returns a `MethodHandleDesc` corresponding to a bootstrap method for an `invokedynamic` callsite, which is a static method whose leading parameter types are `Lookup`, `String`, and `MethodType`.
    `static DirectMethodHandleDesc` | ConstantDescs.`ofConstantBootstrap​(ClassDesc owner, String name, ClassDesc returnType, ClassDesc... paramTypes)` | Returns a `MethodHandleDesc` corresponding to a bootstrap method for a dynamic constant, which is a static method whose leading arguments are `Lookup`, `String`, and `Class`.
    `static DirectMethodHandleDesc` | MethodHandleDesc.`ofConstructor​(ClassDesc owner, ClassDesc... paramTypes)` | Returns a MethodHandleDesc corresponding to invocation of a constructor
    `static DirectMethodHandleDesc` | MethodHandleDesc.`ofField​(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String fieldName, ClassDesc fieldType)` | Creates a MethodHandleDesc corresponding to a method handle that accesses a field.
    `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.

    Methods in java.lang.constant with parameters of type DirectMethodHandleDesc
    Modifier and Type | Method | Description
    --- | --- | ---
    `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 <T> DynamicConstantDesc<T>` | DynamicConstantDesc.`of​(DirectMethodHandleDesc bootstrapMethod)` | Returns a nominal descriptor for a dynamic constant whose bootstrap has no static arguments, whose name parameter is `ConstantDescs.DEFAULT_NAME`, and whose type parameter is always the same as the bootstrap method return type.
    `static <T> DynamicConstantDesc<T>` | DynamicConstantDesc.`of​(DirectMethodHandleDesc bootstrapMethod, ConstantDesc... bootstrapArgs)` | Returns a nominal descriptor for a dynamic constant whose name parameter is `ConstantDescs.DEFAULT_NAME`, and whose type parameter is always the same as the bootstrap method return type.
    `static <T> ConstantDesc` | DynamicConstantDesc.`ofCanonical​(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc[] bootstrapArgs)` | Returns a nominal descriptor for a dynamic constant, transforming it into a more specific type if the constant bootstrap is a well-known one and a more specific nominal descriptor type (e.g., ClassDesc) is available.
    `static <T> DynamicConstantDesc<T>` | DynamicConstantDesc.`ofNamed​(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc... bootstrapArgs)` | Returns a nominal descriptor for a dynamic constant.

    Constructors in java.lang.constant with parameters of type DirectMethodHandleDesc
    Constructor | Description
    --- | ---
    `DynamicConstantDesc​(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc... bootstrapArgs)` | Creates a nominal descriptor for a dynamic constant.