java.lang.Object
java.lang.foreign.FunctionDescriptor
public sealed class FunctionDescriptor extends Object
FunctionDescriptor
は、JavaプラットフォームのプレビューAPIです。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
関数記述子は、ゼロ個以上の引数レイアウトとゼロ個以上の戻りレイアウトで構成されます。 関数記述子は、「ダウンコール・メソッド・ハンドル」PREVIEWまたは「アップコール・スタブ」PREVIEWの作成時に外部関数のシグネチャをモデル化するために使用されます。
- 実装要件:
- このクラスは、不変、スレッド・セーフおよびvalue-basedです。
- 導入されたバージョン:
- 19
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明appendArgumentLayouts
(MemoryLayoutPREVIEW... addedLayouts) 指定された引数レイアウトがこの関数記述子の引数レイアウト配列に付加された関数記述子を返します。この関数記述子(不変のリストとして)に関連付けられた引数レイアウトを返します。asVariadic
(MemoryLayoutPREVIEW... variadicLayouts) この関数記述子引数レイアウトに可変個レイアウトを追加して、特殊な可変個関数記述子を作成します。changeReturnLayout
(MemoryLayoutPREVIEW newReturn) 指定されたメモリー・レイアウトを新しい戻りレイアウトとして関数記述子を返します。戻りレイアウトが削除された関数記述子を返します。boolean
指定されたオブジェクトがこの関数記述子と等しいかどうかを比較します。int
最初の可変個引数レイアウトの索引(定義場所)。int
hashCode()
この関数記述子のハッシュ・コード値を返します。insertArgumentLayouts
(int index, MemoryLayoutPREVIEW... addedLayouts) 指定された索引に挿入された引数レイアウトを持つ関数記述子を、この関数記述子の引数レイアウト配列に戻します。static FunctionDescriptorPREVIEW
of
(MemoryLayoutPREVIEW resLayout, MemoryLayoutPREVIEW... argLayouts) 指定された戻りおよび引数のレイアウトを使用して関数記述子を作成します。static FunctionDescriptorPREVIEW
ofVoid
(MemoryLayoutPREVIEW... argLayouts) 指定された引数レイアウトを持つ関数記述子を作成し、戻りレイアウトは作成しません。この関数記述子に関連付けられた戻りレイアウト(もしあれば)を返します。toString()
この関数記述子の文字列表現を返します。
-
メソッドの詳細
-
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()この関数記述子の文字列表現を返します。 -
equals
public boolean equals(Object other) 指定されたオブジェクトがこの関数記述子と等しいかどうかを比較します。 指定されたオブジェクトも関数記述子で、次のすべての条件が満たされている場合にのみ、true
を返します:- 2つの関数記述子に等価の戻りレイアウト(
MemoryLayout.equals(Object)
PREVIEWを参照してください)があるか、両方に戻りレイアウトがありません - 2つの関数記述子には、ペア単位のequalPREVIEWである引数レイアウトがあります
- 2つの関数記述子の先頭が同一の「可変個引数索引」
- 2つの関数記述子に等価の戻りレイアウト(
-
hashCode
public int hashCode()この関数記述子のハッシュ・コード値を返します。
-
FunctionDescriptor
を使用できます。