public sealed interface FunctionDescriptor
関数記述子は、外部関数のシグネチャをモデル化します。 関数記述子は、0個以上の引数レイアウトと、0個または1個の戻りレイアウトで構成されます。 ファンクション記述子を使用して、downcall method handlesRESTRICTEDおよびupcall stubsRESTRICTEDを作成します。
- 実装要件:
- クラスの実装は、不変、スレッド・セーフおよびvalue-basedです。
- 導入されたバージョン:
- 22
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明appendArgumentLayouts
(MemoryLayout... addedLayouts) この関数記述子の引数レイアウトに、指定された引数レイアウトが追加された関数記述子を返します。この関数記述子(変更不可能なリストとして)の引数レイアウトを返します。changeReturnLayout
(MemoryLayout newReturn) 指定された戻りレイアウトで関数記述子を返します。戻りレイアウトのない新しい関数記述子を返します。insertArgumentLayouts
(int index, MemoryLayout... addedLayouts) 指定された索引に挿入された引数レイアウトを持つ関数記述子を、この関数記述子の引数レイアウト配列に戻します。static FunctionDescriptor
of
(MemoryLayout resLayout, MemoryLayout... argLayouts) 指定された戻りおよび引数のレイアウトを使用して関数記述子を作成します。static FunctionDescriptor
ofVoid
(MemoryLayout... argLayouts) 指定された引数レイアウトを持つ関数記述子を作成し、戻りレイアウトは作成しません。この関数記述子の戻りレイアウト(もしあれば)を返します。この関数記述子のレイアウトのキャリア・タイプで構成されるメソッド・タイプを返します。
-
メソッドの詳細
-
returnLayout
-
argumentLayouts
List<MemoryLayout> argumentLayouts()この関数記述子(変更不可能なリストとして)の引数レイアウトを返します。- 戻り値:
- この関数記述子の引数レイアウト (変更不可能なリストとして)
-
appendArgumentLayouts
FunctionDescriptor appendArgumentLayouts(MemoryLayout... addedLayouts) この関数記述子の引数レイアウトに、指定された引数レイアウトが追加された関数記述子を返します。- パラメータ:
addedLayouts
- 追加する引数レイアウト- 戻り値:
- 指定された追加の引数レイアウトを持つ新しい関数記述子
- 例外:
IllegalArgumentException
-addedLayouts
のいずれかのレイアウトがパディング・レイアウトである場合
-
insertArgumentLayouts
FunctionDescriptor insertArgumentLayouts(int index, MemoryLayout... addedLayouts) 指定された索引に挿入された引数レイアウトを持つ関数記述子を、この関数記述子の引数レイアウト配列に戻します。- パラメータ:
index
- 引数を挿入する索引addedLayouts
- 指定されたインデックスに挿入する引数のレイアウト- 戻り値:
- 指定された追加の引数レイアウトを持つ新しい関数記述子
- 例外:
IllegalArgumentException
-addedLayouts
のいずれかのレイアウトがパディング・レイアウトである場合IllegalArgumentException
-index < 0 || index > argumentLayouts().size()
の場合
-
changeReturnLayout
FunctionDescriptor changeReturnLayout(MemoryLayout newReturn) 指定された戻りレイアウトで関数記述子を返します。- パラメータ:
newReturn
- 新しいリターン・レイアウト- 戻り値:
- 指定された戻り配列を持つ新しい関数記述子
- 例外:
IllegalArgumentException
-newReturn
がパディング・レイアウトの場合
-
dropReturnLayout
-
toMethodType
MethodType toMethodType()この関数記述子のレイアウトのキャリア・タイプで構成されるメソッド・タイプを返します。レイアウト
L
のキャリア・タイプは、次のように決定されます:L
がValueLayout
の場合、キャリア・タイプはValueLayout.carrier()
によって決定されます。L
がGroupLayout
またはSequenceLayout
の場合、キャリア・タイプはMemorySegment
です。
- APIのノート:
- 関数記述子にパディング・レイアウトを含めることはできません。 そのため、パディング・レイアウトを運送業者タイプにマップする方法を指定する必要はありません。
- 戻り値:
- この関数記述子のレイアウトのキャリア・タイプで構成されるメソッド・タイプ
-
of
static FunctionDescriptor of(MemoryLayout resLayout, MemoryLayout... argLayouts) 指定された戻りおよび引数のレイアウトを使用して関数記述子を作成します。- パラメータ:
resLayout
- 戻しレイアウトargLayouts
- 引数のレイアウト- 戻り値:
- 指定された戻りおよび引数のレイアウトを持つ新しい関数記述子
- 例外:
IllegalArgumentException
-resLayout
がパディング・レイアウトの場合IllegalArgumentException
-argLayouts
のいずれかのレイアウトがパディング・レイアウトである場合
-
ofVoid
static FunctionDescriptor ofVoid(MemoryLayout... argLayouts) 指定された引数レイアウトを持つ関数記述子を作成し、戻りレイアウトは作成しません。 これは、値を返さない関数をモデル化する場合に便利です。- パラメータ:
argLayouts
- 引数のレイアウト- 戻り値:
- 指定された引数レイアウトを持つ新しい関数記述子
- 例外:
IllegalArgumentException
-argLayouts
のいずれかのレイアウトがパディング・レイアウトである場合
-