Interface MethodHandleDesc
- All Superinterfaces:
- ConstantDesc
- All Known Subinterfaces:
- DirectMethodHandleDesc
MethodHandle constant.- 
Method SummaryModifier and TypeMethodDescriptiondefault MethodHandleDescasType(MethodTypeDesc type) Returns a MethodHandleDesc that describes this method handle adapted to a different type, as if byMethodHandle.asType(MethodType).booleanCompares the specified object with this descriptor for equality.Returns aMethodTypeDescdescribing the invocation type of the method handle described by this nominal descriptor.static DirectMethodHandleDescof(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 DirectMethodHandleDescofConstructor(ClassDesc owner, ClassDesc... paramTypes) Returns a MethodHandleDesc corresponding to invocation of a constructorstatic DirectMethodHandleDescofField(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String fieldName, ClassDesc fieldType) Creates a MethodHandleDesc corresponding to a method handle that accesses a field.static DirectMethodHandleDescofMethod(DirectMethodHandleDesc.Kind kind, ClassDesc owner, String name, MethodTypeDesc lookupMethodType) Creates a MethodHandleDesc corresponding to an invocation of a declared method or constructor.
- 
Method Details- 
ofstatic 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_infoand for the lookup methods onMethodHandles.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. IfkindisCONSTRUCTOR, thenameparameter is ignored and the return type of the lookup descriptor must bevoid. Ifkindcorresponds 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- ClassDescdescribing the class containing the method, constructor, or field
- name- the unqualified name of the method or field (ignored if- kindis- 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
- See Java Virtual Machine Specification:
- 
4.4.8 The CONSTANT_MethodHandle_info Structure
 4.2.2 Unqualified Names
 4.3.2 Field Descriptors
 4.3.3 Method Descriptors
 
- 
ofMethodstatic 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. IfkindisCONSTRUCTOR, the name is ignored and the return type of the lookup type must bevoid. Ifkindcorresponds 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- ClassDescdescribing the class containing the method or constructor
- name- the unqualified name of the method (ignored if- kindis- CONSTRUCTOR)
- lookupMethodType- a- MethodTypeDescdescribing the lookup type
- Returns:
- the MethodHandleDesc
- Throws:
- NullPointerException- if any non-ignored arguments are null
- IllegalArgumentException- if the- namehas the incorrect format, or the kind is invalid
- See Java Virtual Machine Specification:
- 
4.2.2 Unqualified Names
 
- 
ofFieldstatic 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- ClassDescdescribing the class containing the field
- fieldName- the unqualified name of the field
- fieldType- a- ClassDescdescribing the type of the field
- Returns:
- the MethodHandleDesc
- Throws:
- NullPointerException- if any of the arguments are null
- IllegalArgumentException- if the- kindis not one of the valid values or if the field name is not valid
- See Java Virtual Machine Specification:
- 
4.2.2 Unqualified Names
 
- 
ofConstructorReturns a MethodHandleDesc corresponding to invocation of a constructor- Parameters:
- owner- a- ClassDescdescribing the class containing the constructor
- paramTypes-- ClassDescs describing the parameter types of the constructor
- Returns:
- the MethodHandleDesc
- Throws:
- NullPointerException- if any argument or its contents is- null
 
- 
asTypeReturns a MethodHandleDesc that describes this method handle adapted to a different type, as if byMethodHandle.asType(MethodType).- Parameters:
- type- a- MethodHandleDescdescribing the new method type
- Returns:
- a MethodHandleDesc for the adapted method handle
- Throws:
- NullPointerException- if the argument is- null
 
- 
invocationTypeMethodTypeDesc invocationType()Returns aMethodTypeDescdescribing 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
 
- 
resolveConstantDescDescription copied from interface:ConstantDescResolves this descriptor reflectively, emulating the resolution behavior of JVMS 5.4.3 and the access control behavior of JVMS 5.4.4. The resolution and access control context is provided by theMethodHandles.Lookupparameter. No caching of the resulting value is performed.- Specified by:
- resolveConstantDescin interface- ConstantDesc
- Parameters:
- lookup- The- MethodHandles.Lookupto provide name resolution and access control context
- Returns:
- the resolved constant value
- Throws:
- ReflectiveOperationException- if a class, method, or field could not be reflectively resolved in the course of resolution
- Since:
- 21
 
- 
equalsCompares the specified object with this descriptor for equality. Returnstrueif and only if the specified object is also a MethodHandleDesc, and both encode the same nominal description of a method handle.
 
-