- 含まれているインタフェース:
MemoryLayout
public static sealed interface MemoryLayout.PathElement
このクラスのインスタンスは、「レイアウト・パス」の形成に使用されます。 パス要素には2種類あります: グループ・パスの要素および順序パスの要素。 グループ・パス要素は、
GroupLayout
内の指定された名前付きメンバーのレイアウトを選択するために使用されます。 順序パス要素は、SequenceLayout
内の順序要素レイアウトの選択に使用します。順序要素レイアウトの選択は、explicit (sequenceElement(long)
を参照してください)またはimplicit (sequenceElement()
を参照してください)です。 パスで1つ以上の暗黙的な順序パス要素を使用する場合、追加の「フリー・ディメンション」が取得されます。
特に指定がないかぎり、null
引数、またはこのクラスのメソッドに1つ以上のnull
要素を含む配列引数を渡すと、NullPointerException
がスローされます。
- 実装要件:
- このインタフェースの実装は、不変でスレッド・セーフです。
-
メソッドのサマリー
静的メソッド修飾子と型メソッド説明static MemoryLayout.PathElement
groupElement
(String name) 指定されたグループ・レイアウトから指定された名前のメンバー・レイアウトを選択するパス要素を返します。static MemoryLayout.PathElement
指定された順序レイアウトから未指定の要素レイアウトを選択するパス要素を返します。static MemoryLayout.PathElement
sequenceElement
(long index) 指定された順序レイアウト内の指定された位置にある要素レイアウトを選択するパス要素を返します。static MemoryLayout.PathElement
sequenceElement
(long start, long step) 指定された順序レイアウト内の位置の「範囲」で要素レイアウトを選択するパス要素を返します。この場合の範囲は開始索引(inclusive)S
とステップ・ファクタ(負の値を指定することもできます)F
のペアとして表されます。
-
メソッドの詳細
-
groupElement
static MemoryLayout.PathElement groupElement(String name) 指定されたグループ・レイアウトから指定された名前のメンバー・レイアウトを選択するパス要素を返します。 このメソッドが返すパス要素は、その要素と組み合わされたパスの空きディメンション数を変更しません。- 実装要件:
- 一致する名前を持つ複数のグループ要素が存在する場合、このメソッドによって返されるパス要素によって最初のものが選択されます。つまり、現在のパスからのオフセットが最も小さいグループ要素が選択されます。
- パラメータ:
name
- 選択するグループ要素の名前。- 戻り値:
- 指定された名前を持つグループ要素を選択するパス要素。
-
sequenceElement
static MemoryLayout.PathElement sequenceElement(long index) 指定された順序レイアウト内の指定された位置にある要素レイアウトを選択するパス要素を返します。 このメソッドが返すパス要素は、その要素と組み合わされたパスの空きディメンション数を変更しません。- パラメータ:
index
- 選択する順序要素の索引。- 戻り値:
- 指定されたインデックスを持つ順序要素レイアウトを選択するパス要素。
- 例外:
IllegalArgumentException
-index < 0
の場合
-
sequenceElement
static MemoryLayout.PathElement sequenceElement(long start, long step) 指定された順序レイアウト内の位置の「範囲」で要素レイアウトを選択するパス要素を返します。この場合の範囲は開始索引(inclusive)S
とステップ・ファクタ(負の値を指定することもできます)F
のペアとして表されます。 無償ディメンションn
とパスがこのメソッドから返されたパス要素と結合されている場合、生成されるパスの空きディメンション数は1 + n
になります。 このパスに関連付けられている空きディメンションが索引I
によってバインドされている場合、結果としてアクセスされるオフセットは次の式を使用して取得できます:
ここで、E * (S + I * F)
E
は順序要素レイアウトのサイズ(バイト単位)です。- パラメータ:
start
- 選択する最初のシーケンス要素のインデックス。step
- サブ・シーケンス・シーケンス・シーケンス要素が選択されるステップ・ファクタです。- 戻り値:
- 指定されたインデックスを持つ順序要素レイアウトを選択するパス要素。
- 例外:
IllegalArgumentException
- ifstart < 0
,またはstep == 0
。
-
sequenceElement
static MemoryLayout.PathElement sequenceElement()指定された順序レイアウトから未指定の要素レイアウトを選択するパス要素を返します。 無償ディメンションn
とパスがこのメソッドから返されたパス要素と結合されている場合、生成されるパスの空きディメンション数は1 + n
になります。- 戻り値:
- 未指定の順序要素レイアウトを選択するパス要素。
-