モジュール java.base
パッケージ java.lang.foreign

クラスFunctionDescriptor

java.lang.Object
java.lang.foreign.FunctionDescriptor

public sealed class FunctionDescriptor extends Object
FunctionDescriptorは、JavaプラットフォームのプレビューAPIです。
プレビュー機能が有効な場合のみ、プログラムでFunctionDescriptorを使用できます。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
関数記述子は、ゼロ個以上の引数レイアウトとゼロ個以上の戻りレイアウトで構成されます。 関数記述子は、「ダウンコール・メソッド・ハンドル」PREVIEWまたは「アップコール・スタブ」PREVIEWの作成時に外部関数のシグネチャをモデル化するために使用されます。
実装要件:
このクラスは、不変、スレッド・セーフおよびvalue-basedです。
導入されたバージョン:
19
関連項目:
  • メソッドの詳細

    • returnLayout

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

      public List<MemoryLayoutPREVIEW> argumentLayouts()
      この関数記述子(不変のリストとして)に関連付けられている引数レイアウトを返します。
      戻り値:
      この関数記述子(不変のリストとして)に関連付けられている引数レイアウト
    • of

      public static FunctionDescriptorPREVIEW of(MemoryLayoutPREVIEW resLayout, MemoryLayoutPREVIEW... argLayouts)
      指定された戻りおよび引数のレイアウトを使用して関数記述子を作成します。
      パラメータ:
      resLayout - 戻りレイアウト。
      argLayouts - 引数のレイアウト。
      戻り値:
      新しい関数記述子。
    • ofVoid

      public static FunctionDescriptorPREVIEW ofVoid(MemoryLayoutPREVIEW... argLayouts)
      指定された引数レイアウトを持つ関数記述子を作成し、戻りレイアウトは作成しません。
      パラメータ:
      argLayouts - 引数のレイアウト。
      戻り値:
      新しい関数記述子。
    • asVariadic

      public FunctionDescriptorPREVIEW asVariadic(MemoryLayoutPREVIEW... variadicLayouts)
      この関数記述子引数レイアウトに可変個レイアウトを追加して、特殊な可変個関数記述子を作成します。 結果の関数記述子は、「最初の可変個引数」の位置をレポートでき、どのような方法でも変更できません: たとえば、結果の記述子でchangeReturnLayout(MemoryLayout)をコールすると、UnsupportedOperationExceptionがスローされます。
      パラメータ:
      variadicLayouts - この記述子引数レイアウトに追加される可変個引数レイアウト。
      戻り値:
      可変個関数記述子、またはvariadicLayouts.length == 0の場合はこの記述子。
    • firstVariadicArgumentIndex

      public int firstVariadicArgumentIndex()
      最初の可変個引数レイアウトの索引(定義場所)。
      戻り値:
      最初の可変個引数レイアウトの索引。variadicレイアウトでない場合は-1
    • appendArgumentLayouts

      public FunctionDescriptorPREVIEW appendArgumentLayouts(MemoryLayoutPREVIEW... addedLayouts)
      指定された引数レイアウトがこの関数記述子の引数レイアウト配列に付加された関数記述子を返します。
      パラメータ:
      addedLayouts - 追加する引数のレイアウト。
      戻り値:
      新しい関数記述子。
    • insertArgumentLayouts

      public FunctionDescriptorPREVIEW insertArgumentLayouts(int index, MemoryLayoutPREVIEW... addedLayouts)
      指定された索引に挿入された引数レイアウトを持つ関数記述子を、この関数記述子の引数レイアウト配列に戻します。
      パラメータ:
      index - 引数を挿入する索引
      addedLayouts - 指定された索引に挿入する引数レイアウト。
      戻り値:
      新しい関数記述子。
      例外:
      IllegalArgumentException - index < 0 || index > argumentLayouts().size()の場合。
    • changeReturnLayout

      public FunctionDescriptorPREVIEW changeReturnLayout(MemoryLayoutPREVIEW newReturn)
      指定されたメモリー・レイアウトを新しい戻りレイアウトとして関数記述子を返します。
      パラメータ:
      newReturn - 新しい戻りレイアウト。
      戻り値:
      新しい関数記述子。
    • dropReturnLayout

      public FunctionDescriptorPREVIEW dropReturnLayout()
      戻りレイアウトが削除された関数記述子を返します。 これは、値を返さない関数をモデル化する場合に便利です。
      戻り値:
      新しい関数記述子。
    • toString

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

      public boolean equals(Object other)
      指定されたオブジェクトがこの関数記述子と等しいかどうかを比較します。 指定されたオブジェクトも関数記述子で、次のすべての条件が満たされている場合にのみ、trueを返します:
      オーバーライド:
      equals、クラスObject
      パラメータ:
      other - この関数記述子と等しいかどうかを比較するオブジェクト。
      戻り値:
      指定されたオブジェクトがこの関数記述子と等しい場合はtrue
      関連項目:
    • hashCode

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