java.lang.Object
jdk.incubator.foreign.FunctionDescriptor
- すべての実装されたインタフェース:
Constable
関数記述子は、ゼロ個以上の引数レイアウトとゼロ個以上の戻りレイアウトで構成されます。 ファンクション記述子は、外部ファンクションのシグネチャのモデル化に使用されます。
特に指定がないかぎり、null
引数、またはこのクラスのメソッドに1つ以上のnull
要素を含む配列引数を渡すと、NullPointerException
がスローされます。
-
メソッドのサマリー
修飾子と型メソッド説明appendArgumentLayouts
(MemoryLayout... addedLayouts) 指定された引数レイアウトをこの関数記述子の引数レイアウト配列に追加して、新しい関数記述子を作成します。この関数記述子に関連付けられた引数レイアウトを返します。asVariadic
(MemoryLayout... variadicLayouts) この関数記述子の引数レイアウトに特定の可変個引数レイアウトを追加して、特殊な可変個引数関数記述子を取得します。changeReturnLayout
(MemoryLayout newReturn) 指定されたメモリー・レイアウトを使用して、新しい関数記述子を新しい戻りレイアウトとして作成します。戻り値のレイアウトをドロップして、新しい関数記述子を作成します。boolean
指定されたオブジェクトがこの関数記述子と等しいかどうかを比較します。int
最初の可変個引数レイアウトの索引(定義場所)。int
hashCode()
この関数記述子のハッシュ・コード値を返します。insertArgumentLayouts
(int index, MemoryLayout... addedLayouts) 指定された引数レイアウトを、この関数記述子の引数レイアウト配列に挿入して、新しい関数記述子を作成します。static FunctionDescriptor
of
(MemoryLayout resLayout, MemoryLayout... argLayouts) 指定された戻り値と引数のレイアウトで関数記述子を作成します。static FunctionDescriptor
ofVoid
(MemoryLayout... argLayouts) 指定された引数のレイアウトで戻り値のない関数記述子を作成します。この関数記述子に関連付けられた戻りレイアウト(もしあれば)を返します。toString()
この関数記述子の文字列表現を返します。
-
メソッドの詳細
-
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
- 引数のレイアウト。- 戻り値:
- 新しい関数記述子。
-
asVariadic
public FunctionDescriptor asVariadic(MemoryLayout... variadicLayouts) この関数記述子の引数レイアウトに特定の可変個引数レイアウトを追加して、特殊な可変個引数関数記述子を取得します。 結果の関数記述子は、「最初の可変個引数」の位置をレポートでき、どのような方法でも変更できません: たとえば、結果の記述子でchangeReturnLayout(MemoryLayout)
をコールすると、UnsupportedOperationException
がスローされます。- パラメータ:
variadicLayouts
- この記述子引数レイアウトに追加される可変個引数レイアウト。- 戻り値:
- 新しい可変個引数関数記述子、または
variadicLayouts.length == 0
の場合はこの記述子。
-
firstVariadicArgumentIndex
public int firstVariadicArgumentIndex()最初の可変個引数レイアウトの索引(定義場所)。- 戻り値:
- 最初の可変個引数レイアウトの索引。variadicレイアウトでない場合は
-1
。
-
appendArgumentLayouts
public FunctionDescriptor appendArgumentLayouts(MemoryLayout... addedLayouts) 指定された引数レイアウトをこの関数記述子の引数レイアウト配列に追加して、新しい関数記述子を作成します。- パラメータ:
addedLayouts
- 追加する引数のレイアウト。- 戻り値:
- 新しい関数記述子。
-
insertArgumentLayouts
public FunctionDescriptor insertArgumentLayouts(int index, MemoryLayout... addedLayouts) 指定された引数レイアウトを、この関数記述子の引数レイアウト配列に挿入して、新しい関数記述子を作成します。- パラメータ:
index
- 引数を挿入する索引addedLayouts
- 指定された索引に挿入する引数レイアウト。- 戻り値:
- 新しい関数記述子。
- 例外:
IllegalArgumentException
-index < 0 || index > argumentLayouts().size()
の場合。
-
changeReturnLayout
public FunctionDescriptor changeReturnLayout(MemoryLayout newReturn) 指定されたメモリー・レイアウトを使用して、新しい関数記述子を新しい戻りレイアウトとして作成します。- パラメータ:
newReturn
- 新しい戻りレイアウト。- 戻り値:
- 新しい関数記述子。
-
dropReturnLayout
public FunctionDescriptor dropReturnLayout()戻り値のレイアウトをドロップして、新しい関数記述子を作成します。 これは、値を返さない関数をモデル化する場合に便利です。- 戻り値:
- 新しい関数記述子。
-
toString
public String toString()この関数記述子の文字列表現を返します。 -
equals
public boolean equals(Object other) 指定されたオブジェクトがこの関数記述子と等しいかどうかを比較します。 指定されたオブジェクトも関数記述子で、次のすべての条件が満たされている場合にのみ、true
を返します:- 2つの関数記述子に等しい戻りレイアウト(
MemoryLayout.equals(Object)
を参照してください)があるか、両方に戻りレイアウトがありません - この2つの関数記述子には、ペア単位の等しい(
MemoryLayout.equals(Object)
を参照してください)の引数レイアウトがあります
- 2つの関数記述子に等しい戻りレイアウト(
-
hashCode
public int hashCode()この関数記述子のハッシュ・コード値を返します。 -
describeConstable
public Optional<DynamicConstantDesc<FunctionDescriptor>> describeConstable()- 定義:
- インタフェース
Constable
内のdescribeConstable
- 戻り値:
- 最終的な名目記述子を含む
Optional
、または作成できない場合は空のOptional
。
-