Module java.base
Package java.lang.constant

# Interface DirectMethodHandleDesc

All Superinterfaces:
  `ConstantDesc`, `MethodHandleDesc`

public sealed interface DirectMethodHandleDesc extends MethodHandleDesc
A nominal descriptor for a direct `MethodHandle`. A DirectMethodHandleDesc corresponds to a `Constant_MethodHandle_info` entry in the constant pool of a classfile.

Since:
  12

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static enum`
  `DirectMethodHandleDesc.Kind`
  Kinds of method handles that can be described with DirectMethodHandleDesc.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `isOwnerInterface()`
  Indicates if the method is declared by an interface
  `DirectMethodHandleDesc.Kind`
  `kind()`
  Returns the `kind` of the method handle described by this nominal descriptor.
  `String`
  `lookupDescriptor()`
  Returns the lookup descriptor of the method handle described by this descriptor, after adjusting for the invocation mode.
  `String`
  `methodName()`
  Returns the name of the method or field described by this nominal descriptor.
  `ClassDesc`
  `owner()`
  Returns a `ClassDesc` describing the class declaring the method or field described by this nominal descriptor.
  `int`
  `refKind()`
  Returns the `refKind` of the method handle described by this nominal reference, as defined by `MethodHandleInfo`.

  ### Methods declared in interface java.lang.constant.ConstantDesc

  `resolveConstantDesc`

  ### Methods declared in interface java.lang.constant.MethodHandleDesc

  `asType, equals, invocationType`

- ## Method Details

  - ### kind

    DirectMethodHandleDesc.Kind kind()
    Returns the `kind` of the method handle described by this nominal descriptor.
    Returns:
      the `DirectMethodHandleDesc.Kind`

  - ### refKind

    int refKind()
    Returns the `refKind` of the method handle described by this nominal reference, as defined by `MethodHandleInfo`.
    Returns:
      the reference kind

  - ### isOwnerInterface

    boolean isOwnerInterface()
    Indicates if the method is declared by an interface
    Returns:
      true if the method is declared by an interface

  - ### owner

    ClassDesc owner()
    Returns a `ClassDesc` describing the class declaring the method or field described by this nominal descriptor.
    Returns:
      the class declaring the method or field

  - ### methodName

    String methodName()
    Returns the name of the method or field described by this nominal descriptor. For constructors, returns the reserved name `"<init>"`.
    Returns:
      the name of the method or field

  - ### lookupDescriptor

    String lookupDescriptor()
    Returns the lookup descriptor of the method handle described by this descriptor, after adjusting for the invocation mode. This will correspond to either a method type descriptor string (for methods and constructors), or a field descriptor string (for field access method handles). The lookup descriptor string is in the same format as accepted by `MethodHandleDesc.of(Kind, ClassDesc, String, String)`.
    Returns:
      the lookup descriptor string