public sealed interface FunctionDescriptor
FunctionDescriptor
是 Java 平台的预览 API。
预览功能可能会在将来的版本中被移除,或升级为 Java 平台的永久功能。
- 实现要求:
- 实现类是不可变的、线程安全的,并且是基于值的。
- 自版本:
- 19
- 另请参阅:
-
Method Summary
Modifier and TypeMethodDescriptionappendArgumentLayouts
(MemoryLayoutPREVIEW... addedLayouts) 返回具有给定参数布局附加到此函数描述符的参数布局的函数描述符。返回此函数描述符的参数布局(作为不可修改的列表)。changeReturnLayout
(MemoryLayoutPREVIEW newReturn) 返回具有提供的返回布局的函数描述符。返回一个新的函数描述符,没有返回布局。insertArgumentLayouts
(int index, MemoryLayoutPREVIEW... addedLayouts) 返回具有给定参数布局插入到此函数描述符的参数布局数组中的给定索引处的函数描述符。static FunctionDescriptorPREVIEW
of
(MemoryLayoutPREVIEW resLayout, MemoryLayoutPREVIEW... argLayouts) 创建具有给定返回和参数布局的函数描述符。static FunctionDescriptorPREVIEW
ofVoid
(MemoryLayoutPREVIEW... argLayouts) 创建具有给定参数布局和没有返回布局的函数描述符。返回此函数描述符的返回布局(如果有)。返回由此函数描述符中布局的载体类型组成的方法类型。
-
Method Details
-
returnLayout
Optional<MemoryLayoutPREVIEW> returnLayout()返回此函数描述符的返回布局(如果有)。- 返回:
- 此函数描述符的返回布局(如果有)。
-
argumentLayouts
List<MemoryLayoutPREVIEW> argumentLayouts()返回此函数描述符的参数布局(作为不可修改的列表)。- 返回:
- 此函数描述符的参数布局(作为不可修改的列表)。
-
appendArgumentLayouts
返回具有给定参数布局附加到此函数描述符的参数布局的函数描述符。- 参数:
-
addedLayouts
- 要附加的参数布局。 - 返回:
- 一个新的函数描述符,具有提供的额外参数布局。
- 抛出:
-
IllegalArgumentException
- 如果addedLayouts
中的一个布局是填充布局。
-
insertArgumentLayouts
返回具有给定参数布局插入到此函数描述符的参数布局数组中的给定索引处的函数描述符。- 参数:
-
index
- 要插入参数的索引 -
addedLayouts
- 要在给定索引处插入的参数布局。 - 返回:
- 一个新的函数描述符,具有提供的额外参数布局。
- 抛出:
-
IllegalArgumentException
- 如果addedLayouts
中的一个布局是填充布局。 -
IllegalArgumentException
- 如果index < 0 || index > argumentLayouts().size()
。
-
changeReturnLayout
返回具有提供的返回布局的函数描述符。- 参数:
-
newReturn
- 新的返回布局。 - 返回:
- 一个新的函数描述符,具有提供的返回布局。
- 抛出:
-
IllegalArgumentException
- 如果newReturn
是填充布局。
-
dropReturnLayout
FunctionDescriptorPREVIEW dropReturnLayout()返回一个新的函数描述符,没有返回布局。- 返回:
- 一个新的函数描述符,没有返回布局
-
toMethodType
MethodType toMethodType()返回由此函数描述符中布局的载体类型组成的方法类型。布局
L
的载体类型确定如下:- 如果
L
是一个ValueLayout
预览,则通过ValueLayout.carrier()
预览确定载体类型。 - 如果
L
是一个GroupLayout
预览或一个SequenceLayout
预览,则载体类型是MemorySegment
预览。
- API 注释:
- 函数描述符不能包含任何填充布局。因此,不需要指定如何将填充布局映射到载体类型。
- 返回:
- 返回由此函数描述符中布局的载体类型组成的方法类型。
- 如果
-
of
static FunctionDescriptorPREVIEW of(MemoryLayoutPREVIEW resLayout, MemoryLayoutPREVIEW... argLayouts) 创建具有给定返回和参数布局的函数描述符。- 参数:
-
resLayout
- 返回布局。 -
argLayouts
- 参数布局。 - 返回:
- 具有提供的返回和参数布局的新函数描述符。
- 抛出:
-
IllegalArgumentException
- 如果resLayout
是填充布局。 -
IllegalArgumentException
- 如果argLayouts
中的一个布局是填充布局。
-
ofVoid
创建具有给定参数布局和没有返回布局的函数描述符。这对于模拟不返回值的函数很有用。- 参数:
-
argLayouts
- 参数布局。 - 返回:
- 具有提供的参数布局的新函数描述符。
- 抛出:
-
IllegalArgumentException
- 如果argLayouts
中的一个布局是填充布局。
-
FunctionDescriptor
。