Module java.base
Package java.lang.constant

# Interface DirectMethodHandleDesc

All Superinterfaces:
  `ConstantDesc`, `MethodHandleDesc`

    public 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.

API Note:
  In the future, if the Java language permits, DirectMethodHandleDesc may become a `sealed` interface, which would prohibit subclassing except by explicitly permitted types. Non-platform classes should not implement DirectMethodHandleDesc directly.
Since:
  12

## Nested Class Summary

Nested Classes
Modifier and Type | Interface | Description
--- | --- | ---
`static class` | `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