Package Summary Overview Summary

### class:TypeDescriptor.OfMethod [NONE]
Type Parameters: `F` - the type representing field type descriptors `M` - the class implementing TypeDescriptor.OfMethod All Superinterfaces: `TypeDescriptor` All Known Subinterfaces: `MethodTypeDesc` All Known Implementing Classes: `MethodType` Enclosing interface: `TypeDescriptor` public static interface TypeDescriptor.OfMethod<F extends TypeDescriptor.OfField<F>,M extends TypeDescriptor.OfMethod<F,M>> extends TypeDescriptor An entity that has a method type descriptor Method descriptors conforming to JVMS 4.3.3 can be described nominally via `MethodType::describeConstable`; otherwise they cannot be described nominally. See Java Virtual Machine Specification : 4.3.2 Field Descriptors 4.3.3 Method Descriptors Since: 12

### method:parameterCount() [NONE]
### parameterCount int parameterCount() Return the number of parameters in the method type Returns: the number of parameters

### method:parameterType(int) [NONE]
### parameterType F parameterType (int i) Return a field descriptor describing the requested parameter of the method type described by this descriptor Parameters: `i` - the index of the parameter Returns: a field descriptor for the requested parameter type Throws: `IndexOutOfBoundsException` - if the index is outside the half-open range {[0, parameterCount)}

### method:returnType() [NONE]
### returnType F returnType() Return a field descriptor describing the return type of the method type described by this descriptor Returns: a field descriptor for the return type

### method:parameterArray() [NONE]
### parameterArray F[] parameterArray() Return an array of field descriptors for the parameter types of the method type described by this descriptor Returns: field descriptors for the parameter types

### method:parameterList() [NONE]
### parameterList List<F> parameterList() Return an immutable list of field descriptors for the parameter types of the method type described by this descriptor Returns: field descriptors for the parameter types ### changeReturnType M changeReturnType (F newReturn) Return a method descriptor that is identical to this one, except that the return type has been changed to the specified type Parameters: `newReturn` - a field descriptor for the new return type Returns: the new method descriptor Throws: `NullPointerException` - if any argument is `null` ### changeParameterType M changeParameterType (int index, F paramType) Return a method descriptor that is identical to this one, except that a single parameter type has been changed to the specified type. Parameters: `index` - the index of the parameter to change `paramType` - a field descriptor describing the new parameter type Returns: the new method descriptor Throws: `NullPointerException` - if any argument is `null` `IndexOutOfBoundsException` - if the index is outside the half-open range {[0, parameterCount)}

### method:dropParameterTypes(int,int) [NONE]
### dropParameterTypes M dropParameterTypes (int start, int end) Return a method descriptor that is identical to this one, except that a range of parameter types have been removed. Parameters: `start` - the index of the first parameter to remove `end` - the index after the last parameter to remove Returns: the new method descriptor Throws: `IndexOutOfBoundsException` - if `start` is outside the half-open range `[0, parameterCount)` , or `end` is outside the closed range `[0, parameterCount]` , or if `start > end` ### insertParameterTypes M insertParameterTypes (int pos, F... paramTypes) Return a method descriptor that is identical to this one, except that a range of additional parameter types have been inserted. Parameters: `pos` - the index at which to insert the first inserted parameter `paramTypes` - field descriptors describing the new parameter types to insert Returns: the new method descriptor Throws: `NullPointerException` - if any argument is `null` `IndexOutOfBoundsException` - if `pos` is outside the closed range {[0, parameterCount]}