モジュール jdk.incubator.foreign
パッケージ jdk.incubator.foreign

クラスFunctionDescriptor

java.lang.Object
jdk.incubator.foreign.FunctionDescriptor
すべての実装されたインタフェース:
Constable

public final class FunctionDescriptor extends Object implements Constable
関数記述子は、ゼロ個以上の引数レイアウトとゼロ個以上の戻りレイアウトで構成されます。 ファンクション記述子は、外部ファンクションのシグネチャのモデル化に使用されます。

特に指定がないかぎり、null引数、またはこのクラスのメソッドに1つ以上のnull要素を含む配列引数を渡すと、NullPointerExceptionがスローされます。

  • フィールド詳細

    • TRIVIAL_ATTRIBUTE_NAME

      public static final String TRIVIAL_ATTRIBUTE_NAME
      関数記述子属性の名前(簡易関数をマークするために使用されるattributes()を参照)。 属性値はブールである必要があります。
      関連項目:
  • メソッドの詳細

    • attribute

      public Optional<Constable> attribute(String name)
      指定された名前の(それが存在する場合)の属性を返します。
      パラメータ:
      name - 属性名
      戻り値:
      指定された名前の(それが存在する場合)の属性。
    • attributes

      public Stream<String> attributes()
      この関数記述子に関連付けられた属性名のストリームを返します。
      戻り値:
      この関数記述子に関連付けられた属性名のストリーム。
    • withAttribute

      public FunctionDescriptor withAttribute(String name, Constable value)
      この記述子と同じ属性と新しく指定された属性を持つ新しい関数記述子を返します。 この記述子に同じ名前の属性がすでに含まれている場合、返される記述子の既存の属性値は上書きされます。
      パラメータ:
      name - 属性名
      value - 属性値
      戻り値:
      この記述子と同じ属性と新しく指定された属性を持つ新しい関数記述子。
    • returnLayout

      public Optional<MemoryLayout> returnLayout()
      この関数に関連付けられた戻りレイアウトを返します。
      戻り値:
      戻りレイアウト。
    • argumentLayouts

      public List<MemoryLayout> argumentLayouts()
      この関数に関連付けられた引数のレイアウトを返します。
      戻り値:
      引数のレイアウト。
    • of

      public static FunctionDescriptor of(MemoryLayout resLayout, MemoryLayout... argLayouts)
      指定された戻り値と引数のレイアウトで関数記述子を作成します。
      パラメータ:
      resLayout - 戻りレイアウト。
      argLayouts - 引数のレイアウト。
      戻り値:
      新しい関数記述子。
    • ofVoid

      public static FunctionDescriptor ofVoid(MemoryLayout... argLayouts)
      指定された引数のレイアウトで戻り値のない関数記述子を作成します。
      パラメータ:
      argLayouts - 引数のレイアウト。
      戻り値:
      新しい関数記述子。
    • withAppendedArgumentLayouts

      public FunctionDescriptor withAppendedArgumentLayouts(MemoryLayout... addedLayouts)
      指定された引数レイアウトをこの関数記述子の引数レイアウト配列に追加して、新しい関数記述子を作成します。
      パラメータ:
      addedLayouts - 追加する引数のレイアウト。
      戻り値:
      新しい関数記述子。
    • withReturnLayout

      public FunctionDescriptor withReturnLayout(MemoryLayout newReturn)
      指定されたメモリー・レイアウトを使用して、新しい関数記述子を新しい戻りレイアウトとして作成します。
      パラメータ:
      newReturn - 新しい戻りレイアウト。
      戻り値:
      新しい関数記述子。
    • withVoidReturnLayout

      public FunctionDescriptor withVoidReturnLayout()
      戻り値のレイアウトをドロップして、新しい関数記述子を作成します。
      戻り値:
      新しい関数記述子。
    • toString

      public String toString()
      この関数記述子の文字列表現を返します。
      オーバーライド:
      toString、クラスObject
      戻り値:
      この関数記述子の文字列表現。
    • equals

      public boolean equals(Object other)
      指定されたオブジェクトがこの関数記述子と等しいかどうかを比較します。 指定されたオブジェクトが関数記述子でもあり、次の条件がすべて満たされている場合にのみ、trueを返します:
      • 2つの関数記述子に等しい戻りレイアウト(MemoryLayout.equals(Object)を参照してください)があるか、両方に戻りレイアウトがありません
      • この2つの関数記述子には、ペア単位の等しい(MemoryLayout.equals(Object)を参照してください)の引数レイアウトがあります
      オーバーライド:
      equals、クラスObject
      パラメータ:
      other - この関数記述子と等しいかどうかを比較するオブジェクト。
      戻り値:
      指定されたオブジェクトがこの関数記述子と等しい場合はtrue
      関連項目:
    • hashCode

      public int hashCode()
      この関数記述子のハッシュ・コード値を返します。
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      この関数記述子のハッシュ・コード値。
      関連項目:
    • describeConstable

      public Optional<DynamicConstantDesc<FunctionDescriptor>> describeConstable()
      インタフェース: Constableからコピーされた説明
      このインスタンスの名目記述子を含むOptionalを返します(作成可能な場合)、作成できない場合は空のOptionalを返します。
      定義:
      インタフェースConstable内のdescribeConstable
      戻り値:
      最終的な名目記述子を含むOptional、または作成できない場合は空のOptional