Module java.base

Interface FunctionDescriptor


public sealed interface FunctionDescriptor
FunctionDescriptor 是 Java 平台的预览 API。
仅当启用预览功能时,程序才能使用 FunctionDescriptor
预览功能可能会在将来的版本中被移除,或升级为 Java 平台的永久功能。
函数描述符模拟外部函数的签名。函数描述符由零个或多个参数布局和零个或一个返回布局组成。函数描述符用于创建下调方法句柄预览上调存根预览
实现要求:
实现类是不可变的、线程安全的,并且是基于值的。
自版本:
19
另请参阅:
  • Method Details

    • returnLayout

      Optional<MemoryLayoutPREVIEW> returnLayout()
      返回此函数描述符的返回布局(如果有)。
      返回:
      此函数描述符的返回布局(如果有)。
    • argumentLayouts

      List<MemoryLayoutPREVIEW> argumentLayouts()
      返回此函数描述符的参数布局(作为不可修改的列表)。
      返回:
      此函数描述符的参数布局(作为不可修改的列表)。
    • appendArgumentLayouts

      FunctionDescriptorPREVIEW appendArgumentLayouts(MemoryLayoutPREVIEW... addedLayouts)
      返回具有给定参数布局附加到此函数描述符的参数布局的函数描述符。
      参数:
      addedLayouts - 要附加的参数布局。
      返回:
      一个新的函数描述符,具有提供的额外参数布局。
      抛出:
      IllegalArgumentException - 如果addedLayouts中的一个布局是填充布局。
    • insertArgumentLayouts

      FunctionDescriptorPREVIEW insertArgumentLayouts(int index, MemoryLayoutPREVIEW... addedLayouts)
      返回具有给定参数布局插入到此函数描述符的参数布局数组中的给定索引处的函数描述符。
      参数:
      index - 要插入参数的索引
      addedLayouts - 要在给定索引处插入的参数布局。
      返回:
      一个新的函数描述符,具有提供的额外参数布局。
      抛出:
      IllegalArgumentException - 如果addedLayouts中的一个布局是填充布局。
      IllegalArgumentException - 如果index < 0 || index > argumentLayouts().size()
    • changeReturnLayout

      FunctionDescriptorPREVIEW changeReturnLayout(MemoryLayoutPREVIEW newReturn)
      返回具有提供的返回布局的函数描述符。
      参数:
      newReturn - 新的返回布局。
      返回:
      一个新的函数描述符,具有提供的返回布局。
      抛出:
      IllegalArgumentException - 如果newReturn是填充布局。
    • dropReturnLayout

      FunctionDescriptorPREVIEW dropReturnLayout()
      返回一个新的函数描述符,没有返回布局。
      返回:
      一个新的函数描述符,没有返回布局
    • toMethodType

      MethodType toMethodType()
      返回由此函数描述符中布局的载体类型组成的方法类型。

      布局L的载体类型确定如下:

      API 注释:
      函数描述符不能包含任何填充布局。因此,不需要指定如何将填充布局映射到载体类型。
      返回:
      返回由此函数描述符中布局的载体类型组成的方法类型。
    • of

      static FunctionDescriptorPREVIEW of(MemoryLayoutPREVIEW resLayout, MemoryLayoutPREVIEW... argLayouts)
      创建具有给定返回和参数布局的函数描述符。
      参数:
      resLayout - 返回布局。
      argLayouts - 参数布局。
      返回:
      具有提供的返回和参数布局的新函数描述符。
      抛出:
      IllegalArgumentException - 如果resLayout是填充布局。
      IllegalArgumentException - 如果argLayouts中的一个布局是填充布局。
    • ofVoid

      static FunctionDescriptorPREVIEW ofVoid(MemoryLayoutPREVIEW... argLayouts)
      创建具有给定参数布局和没有返回布局的函数描述符。这对于模拟不返回值的函数很有用。
      参数:
      argLayouts - 参数布局。
      返回:
      具有提供的参数布局的新函数描述符。
      抛出:
      IllegalArgumentException - 如果argLayouts中的一个布局是填充布局。