Package Summary Overview Summary

### class:MethodHandleDesc [NONE]
All Superinterfaces: `ConstantDesc` All Known Subinterfaces: `DirectMethodHandleDesc`
    public interface MethodHandleDesc
    extends ConstantDesc
A nominal descriptor for a `MethodHandle` constant. API Note: In the future, if the Java language permits, MethodHandleDesc may become a `sealed` interface, which would prohibit subclassing except by explicitly permitted types. Non-platform classes should not implement MethodHandleDesc directly. Since: 12

### method:of(java.lang.constant.DirectMethodHandleDesc.Kind,java.lang.constant.ClassDesc,java.lang.String,java.lang.String) [NONE]
### of static DirectMethodHandleDesc 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. The lookup descriptor string has the same format as for the various variants of `CONSTANT_MethodHandle_info` and for the lookup methods on `MethodHandles.Lookup`. For a method or constructor invocation, it is interpreted as a method type descriptor; for field access, it is interpreted as a field descriptor. If `kind` is `CONSTRUCTOR`, the `name` parameter is ignored and the return type of the lookup descriptor must be `void`. If `kind` corresponds to a virtual method invocation, the lookup type includes the method parameters but not the receiver type. Parameters: `kind` - The kind of method handle to be described `owner` - a `ClassDesc` describing the class containing the method, constructor, or field `name` - the unqualified name of the method or field (ignored if `kind` is `CONSTRUCTOR`) `lookupDescriptor` - a method descriptor string the lookup type, if the request is for a method invocation, or describing the invocation type, if the request is for a field or constructor Returns: the MethodHandleDesc Throws: `NullPointerException` - if any of the non-ignored arguments are null `IllegalArgumentException` - if the descriptor string is not a valid method or field descriptor

### method:ofMethod(java.lang.constant.DirectMethodHandleDesc.Kind,java.lang.constant.ClassDesc,java.lang.String,java.lang.constant.MethodTypeDesc) [NONE]
### ofMethod static DirectMethodHandleDesc ofMethod?(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String name, MethodTypeDesc lookupMethodType) Creates a MethodHandleDesc corresponding to an invocation of a declared method or constructor. The lookup descriptor string has the same format as for the lookup methods on `MethodHandles.Lookup`. If `kind` is `CONSTRUCTOR`, the name is ignored and the return type of the lookup type must be `void`. If `kind` corresponds to a virtual method invocation, the lookup type includes the method parameters but not the receiver type. Parameters: `kind` - The kind of method handle to be described; must be one of `SPECIAL, VIRTUAL, STATIC, INTERFACE_SPECIAL, INTERFACE_VIRTUAL, INTERFACE_STATIC, CONSTRUCTOR` `owner` - a `ClassDesc` describing the class containing the method or constructor `name` - the unqualified name of the method (ignored if `kind` is `CONSTRUCTOR`) `lookupMethodType` - a `MethodTypeDesc` describing the lookup type Returns: the MethodHandleDesc Throws: `NullPointerException` - if any non-ignored arguments are null `IllegalArgumentException` - if the `name` has the incorrect format, or the kind is invalid

### method:ofField(java.lang.constant.DirectMethodHandleDesc.Kind,java.lang.constant.ClassDesc,java.lang.String,java.lang.constant.ClassDesc) [NONE]
### ofField static DirectMethodHandleDesc ofField?(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String fieldName, ClassDesc fieldType) Creates a MethodHandleDesc corresponding to a method handle that accesses a field. Parameters: `kind` - the kind of the method handle to be described; must be one of `GETTER`, `SETTER`, `STATIC_GETTER`, or `STATIC_SETTER` `owner` - a `ClassDesc` describing the class containing the field `fieldName` - the unqualified name of the field `fieldType` - a `ClassDesc` describing the type of the field Returns: the MethodHandleDesc Throws: `NullPointerException` - if any of the arguments are null `IllegalArgumentException` - if the `kind` is not one of the valid values or if the field name is not valid

### method:ofConstructor(java.lang.constant.ClassDesc,java.lang.constant.ClassDesc...) [NONE]
### ofConstructor static DirectMethodHandleDesc ofConstructor?(ClassDesc owner, ClassDesc... paramTypes) Returns a MethodHandleDesc corresponding to invocation of a constructor Parameters: `owner` - a `ClassDesc` describing the class containing the constructor `paramTypes` - `ClassDesc`s describing the parameter types of the constructor Returns: the MethodHandleDesc Throws: `NullPointerException` - if any argument or its contents is `null`

### method:asType(java.lang.constant.MethodTypeDesc) [NONE]
### asType default MethodHandleDesc asType?(MethodTypeDesc type) Returns a MethodHandleDesc that describes this method handle adapted to a different type, as if by `MethodHandle.asType(MethodType)`. Parameters: `type` - a `MethodHandleDesc` describing the new method type Returns: a MethodHandleDesc for the adapted method handle Throws: `NullPointerException` - if the argument is `null`

### method:invocationType() [NONE]
### invocationType MethodTypeDesc invocationType() Returns a `MethodTypeDesc` describing the invocation type of the method handle described by this nominal descriptor. The invocation type describes the full set of stack values that are consumed by the invocation (including the receiver, if any). Returns: a MethodHandleDesc describing the method handle type

### method:equals(java.lang.Object) [NONE]
### equals boolean equals?(Object o) Compares the specified object with this descriptor for equality. Returns `true` if and only if the specified object is also a MethodHandleDesc, and both encode the same nominal description of a method handle. Overrides: `equals` in class `Object` Parameters: `o` - the other object Returns: whether this descriptor is equal to the other object See Also: `Object.hashCode()`, `HashMap`