Interface MethodTypeDesc
- All Superinterfaces:
-
ConstantDesc
,TypeDescriptor
,TypeDescriptor.OfMethod<ClassDesc,
MethodTypeDesc>
public sealed interface MethodTypeDesc extends ConstantDesc, TypeDescriptor.OfMethod<ClassDesc,MethodTypeDesc>
A nominal descriptor for a MethodType constant.
- Since:
- 12
Nested Class Summary
Nested classes/interfaces declared in interface java.lang.invoke.TypeDescriptor
TypeDescriptor.OfField<F extends TypeDescriptor.OfField<F>>, TypeDescriptor.OfMethod<F extends TypeDescriptor.OfField<F>,M extends TypeDescriptor.OfMethod<F,M>>
Method Summary
Modifier and Type | Method | Description |
---|---|---|
MethodTypeDesc |
changeParameterType |
Returns a MethodTypeDesc that is identical to this one, except that a single parameter type has been changed to the specified type. |
MethodTypeDesc |
changeReturnType |
Returns a MethodTypeDesc that is identical to this one, except with the specified return type. |
default String |
descriptorString() |
Returns the method type descriptor string. |
default String |
displayDescriptor() |
Returns a human-readable descriptor for this method type, using the canonical names for parameter and return types. |
MethodTypeDesc |
dropParameterTypes |
Returns a MethodTypeDesc that is identical to this one, except that a range of parameter types have been removed. |
boolean |
equals |
Compares the specified object with this descriptor for equality. |
MethodTypeDesc |
insertParameterTypes |
Returns a MethodTypeDesc that is identical to this one, except that a range of additional parameter types have been inserted. |
static MethodTypeDesc |
of |
Returns a MethodTypeDesc given the return type and parameter types. |
static MethodTypeDesc |
ofDescriptor |
Creates a MethodTypeDesc given a method descriptor string. |
ClassDesc[] |
parameterArray() |
Returns the parameter types as an array. |
int |
parameterCount() |
Returns the number of parameters of the method type described by this MethodTypeDesc. |
List<ClassDesc> |
parameterList() |
Returns the parameter types as an immutable List . |
ClassDesc |
parameterType |
Returns the parameter type of the index 'th parameter of the method type described by this MethodTypeDesc. |
ClassDesc |
returnType() |
Gets the return type of the method type described by this MethodTypeDesc. |
Methods declared in interface java.lang.constant.ConstantDesc
resolveConstantDesc
Method Details
ofDescriptor
static MethodTypeDesc ofDescriptor(String descriptor)
Creates a MethodTypeDesc given a method descriptor string.
- Parameters:
-
descriptor
- a method descriptor string - Returns:
- a MethodTypeDesc describing the desired method type
- Throws:
-
NullPointerException
- if the argument isnull
-
IllegalArgumentException
- if the descriptor string is not a valid method descriptor - See Java Virtual Machine Specification:
- 4.3.3 Method Descriptors
of
static MethodTypeDesc of(ClassDesc returnDesc, ClassDesc... paramDescs)
Returns a MethodTypeDesc given the return type and parameter types.
- Parameters:
-
returnDesc
- a ClassDesc describing the return type -
paramDescs
- ClassDescs describing the argument types - Returns:
- a MethodTypeDesc describing the desired method type
- Throws:
-
NullPointerException
- if any argument or its contents arenull
-
IllegalArgumentException
- if any element ofparamDescs
is aClassDesc
forvoid
returnType
ClassDesc returnType()
Gets the return type of the method type described by this MethodTypeDesc.
- Specified by:
-
returnType
in interfaceTypeDescriptor.OfMethod<ClassDesc,
MethodTypeDesc> - Returns:
- a
ClassDesc
describing the return type of the method type
parameterCount
int parameterCount()
Returns the number of parameters of the method type described by this MethodTypeDesc.
- Specified by:
-
parameterCount
in interfaceTypeDescriptor.OfMethod<ClassDesc,
MethodTypeDesc> - Returns:
- the number of parameters
parameterType
ClassDesc parameterType(int index)
Returns the parameter type of the
index
'th parameter of the method type described by this MethodTypeDesc.- Specified by:
-
parameterType
in interfaceTypeDescriptor.OfMethod<ClassDesc,
MethodTypeDesc> - Parameters:
-
index
- the index of the parameter to retrieve - Returns:
- a
ClassDesc
describing the desired parameter type - Throws:
-
IndexOutOfBoundsException
- if the index is outside the half-open range {[0, parameterCount())}
parameterList
List<ClassDesc> parameterList()
Returns the parameter types as an immutable
List
.- Specified by:
-
parameterList
in interfaceTypeDescriptor.OfMethod<ClassDesc,
MethodTypeDesc> - Returns:
- a
List
ofClassDesc
describing the parameter types
parameterArray
ClassDesc[] parameterArray()
Returns the parameter types as an array.
- Specified by:
-
parameterArray
in interfaceTypeDescriptor.OfMethod<ClassDesc,
MethodTypeDesc> - Returns:
- an array of
ClassDesc
describing the parameter types
changeReturnType
MethodTypeDesc changeReturnType(ClassDesc returnType)
Returns a MethodTypeDesc that is identical to this one, except with the specified return type.
- Specified by:
-
changeReturnType
in interfaceTypeDescriptor.OfMethod<ClassDesc,
MethodTypeDesc> - Parameters:
-
returnType
- aClassDesc
describing the new return type - Returns:
- a MethodTypeDesc describing the desired method type
- Throws:
-
NullPointerException
- if the argument isnull
changeParameterType
MethodTypeDesc changeParameterType(int index, ClassDesc paramType)
Returns a MethodTypeDesc that is identical to this one, except that a single parameter type has been changed to the specified type.
- Specified by:
-
changeParameterType
in interfaceTypeDescriptor.OfMethod<ClassDesc,
MethodTypeDesc> - Parameters:
-
index
- the index of the parameter to change -
paramType
- aClassDesc
describing the new parameter type - Returns:
- a MethodTypeDesc describing the desired method type
- Throws:
-
NullPointerException
- if any argument isnull
-
IndexOutOfBoundsException
- if the index is outside the half-open range {[0, parameterCount)}
dropParameterTypes
MethodTypeDesc dropParameterTypes(int start, int end)
Returns a MethodTypeDesc that is identical to this one, except that a range of parameter types have been removed.
- Specified by:
-
dropParameterTypes
in interfaceTypeDescriptor.OfMethod<ClassDesc,
MethodTypeDesc> - Parameters:
-
start
- the index of the first parameter to remove -
end
- the index after the last parameter to remove - Returns:
- a MethodTypeDesc describing the desired method type
- Throws:
-
IndexOutOfBoundsException
- ifstart
is outside the half-open range[0, parameterCount)
, orend
is outside the closed range[0, parameterCount]
, or ifstart > end
insertParameterTypes
MethodTypeDesc insertParameterTypes(int pos, ClassDesc... paramTypes)
Returns a MethodTypeDesc that is identical to this one, except that a range of additional parameter types have been inserted.
- Specified by:
-
insertParameterTypes
in interfaceTypeDescriptor.OfMethod<ClassDesc,
MethodTypeDesc> - Parameters:
-
pos
- the index at which to insert the first inserted parameter -
paramTypes
-ClassDesc
s describing the new parameter types to insert - Returns:
- a MethodTypeDesc describing the desired method type
- Throws:
-
NullPointerException
- if any argument or its contents arenull
-
IndexOutOfBoundsException
- ifpos
is outside the closed range {[0, parameterCount]} -
IllegalArgumentException
- if any element ofparamTypes
is aClassDesc
forvoid
descriptorString
default String descriptorString()
Returns the method type descriptor string.
- Specified by:
-
descriptorString
in interfaceTypeDescriptor
- Returns:
- the method type descriptor string
- See Java Virtual Machine Specification:
- 4.3.3 Method Descriptors
displayDescriptor
default String displayDescriptor()
Returns a human-readable descriptor for this method type, using the canonical names for parameter and return types.
- Returns:
- the human-readable descriptor for this method type
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 MethodTypeDesc both have the same arity, their return types are equal, and each pair of corresponding parameter types are equal.
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/constant/MethodTypeDesc.html