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

インタフェースMemoryLayout.PathElement

含まれているインタフェース:
MemoryLayoutPREVIEW

public static sealed interface MemoryLayout.PathElement
PathElementは、JavaプラットフォームのプレビューAPIです。
プレビュー機能が有効な場合のみ、プログラムでPathElementを使用できます。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
レイアウト・パス内の要素。 パス要素には2種類あります: グループ・パスの要素および順序パスの要素 グループ・パス要素は、GroupLayoutPREVIEW内の名前付きメンバー・レイアウトを選択するために使用されます。 順序パス要素は、SequenceLayoutPREVIEW内の順序要素レイアウトを選択するために使用されます。順序要素レイアウトの選択は、explicit (sequenceElement(long)を参照してください)またはimplicit (sequenceElement()を参照してください)です。 パスで1つ以上の暗黙的な順序パス要素を使用する場合、追加の「フリー・ディメンション」が取得されます。
実装要件:
このインタフェースの実装は不変、スレッド・セーフ、およびvalue-basedです。
導入されたバージョン:
19
  • メソッドの詳細

    • groupElement

      static MemoryLayout.PathElementPREVIEW groupElement(String name)
      グループ・レイアウト内で指定された名前のメンバー・レイアウトを選択するパス要素を返します。 このメソッドが返すパス要素は、その要素と組み合わされたパスの空きディメンション数を変更しません。
      実装要件:
      一致する名前を持つ複数のグループ要素が存在する場合、このメソッドによって返されるパス要素によって最初のものが選択されます。つまり、現在のパスからのオフセットが最も小さいグループ要素が選択されます。
      パラメータ:
      name - 選択するグループ要素の名前。
      戻り値:
      指定された名前のグループ要素を選択するパス要素。
    • sequenceElement

      static MemoryLayout.PathElementPREVIEW sequenceElement(long index)
      順序レイアウトの指定位置にある要素レイアウトを選択するパス要素を返します。 このメソッドが返すパス要素は、その要素と組み合わされたパスの空きディメンション数を変更しません。
      パラメータ:
      index - 選択する順序要素の索引。
      戻り値:
      指定された索引を持つシーケンス要素のレイアウトを選択するパス要素。
      例外:
      IllegalArgumentException - index < 0の場合
    • sequenceElement

      static MemoryLayout.PathElementPREVIEW sequenceElement(long start, long step)
      順序レイアウト内の「範囲」の位置で要素レイアウトを選択するパス要素を返します。 範囲は、開始索引(inclusive) Sとステップ係数(負の値を指定することもできます) Fのペアとして表されます。

      無償ディメンションnとパスがこのメソッドから返されたパス要素と結合されている場合、生成されるパスの空きディメンション数は1 + nになります。 このパスに関連付けられている空きディメンションが索引Iによってバインドされている場合、結果としてアクセスされるオフセットは次の式を使用して取得できます:

      
       E * (S + I * F)
       
      ここで、Eは順序要素レイアウトのサイズ(バイト単位)です。

      さらに、Cが順序要素数である場合、0 <= I < Bの後に続きます。Bは次のように計算されます:

      • F > 0の場合、B = ceilDiv(C - S, F)
      • F < 0の場合、B = ceilDiv(-(S + 1), -F)

      パラメータ:
      start - 選択する最初のシーケンス要素のインデックス。
      step - サブ・シーケンス・シーケンス・シーケンス要素が選択されるステップ・ファクタです。
      戻り値:
      指定された索引を持つシーケンス要素のレイアウトを選択するパス要素。
      例外:
      IllegalArgumentException - if start < 0,またはstep == 0
    • sequenceElement

      static MemoryLayout.PathElementPREVIEW sequenceElement()
      順序レイアウトで未指定の要素レイアウトを選択するパス要素を返します。

      無償ディメンションnとパスがこのメソッドから返されたパス要素と結合されている場合、生成されるパスの空きディメンション数は1 + nになります。 このパスに関連付けられている空きディメンションが索引Iによってバインドされている場合、結果としてアクセスされるオフセットは次の式を使用して取得できます:

      
       E * I
       
      ここで、Eは順序要素レイアウトのサイズ(バイト単位)です。

      また、Cが順序要素数である場合、0 <= I < Cの後に続きます。

      戻り値:
      未指定の順序要素レイアウトを選択するパス要素。