インタフェースGroupLayout

すべてのスーパー・インタフェース:
MemoryLayout
既知のすべてのサブインタフェース:
StructLayout, UnionLayout

public sealed interface GroupLayout extends MemoryLayout permits StructLayout, UnionLayout
複数の異種「メンバー・レイアウト」の集計である複合レイアウト。 メンバー・レイアウトを結合する方法は2つあります: メンバー・レイアウトが順番にレイアウトされている場合、結果のグループ・レイアウトは「構造体レイアウト」になります。逆に、すべてのメンバー・レイアウトが同じ開始オフセットでレイアウトされている場合、結果のグループ・レイアウトは「共用体レイアウト」になります。
実装要件:
このクラスは、不変、スレッド・セーフおよびvalue-basedです。
シール済クラス階層グラフ:
GroupLayoutの密封されたクラス階層グラフGroupLayoutの密封されたクラス階層グラフ
導入されたバージョン:
22
  • ネストされたクラスのサマリー

    インタフェースで宣言されたネストされたクラス/インタフェース MemoryLayout

    MemoryLayout.PathElement
    修飾子と型
    インタフェース
    説明
    static interface 
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このグループ・レイアウトのメンバー・レイアウトを返します。
    withByteAlignment(long byteAlignment)
    このレイアウトと同じ特性を持つメモリー・レイアウトを返しますが、指定された整列制約(バイト単位)を使用します。
    このレイアウトと同じ特性を持つメモリー・レイアウトを、指定された名前で返します。
    このレイアウトと同じ特性を持つメモリー・レイアウトを名前なしで返します。

    インタフェースで宣言されたメソッド MemoryLayout

    arrayElementVarHandle, byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, scale, scaleHandle, select, sliceHandle, toString, varHandle
    修飾子と型
    メソッド
    説明
    指定されたレイアウト・パスによって選択されたオフセットでメモリー・セグメント内の隣接する要素にアクセスするvarハンドルを作成します。アクセスされた要素にはこのレイアウトがあり、パスの初期レイアウトはこのレイアウトです。
    long
    このレイアウトに関連付けられているバイト単位の配置制約を返します。
    long
    指定されたレイアウト・パスによって選択されたレイアウトのオフセットをバイト数で計算します。パス内の初期レイアウトはこのレイアウトです。
    指定されたレイアウト・パスによって選択されたレイアウトのオフセット(バイト)を計算するメソッド・ハンドルを作成します。パス内の初期レイアウトはこのレイアウトです。
    long
    レイアウト・サイズをバイト単位で返します。
    boolean
    equals(Object other)
    指定されたオブジェクトをこのレイアウトと比較し、等価性を維持します。
    int
    このレイアウトのハッシュ・コード値を返します。
    このレイアウトに関連付けられている名前(もしあれば)を返します。
    long
    scale(long offset, long index)
    offset + (byteSize() * index)を返します。
    このレイアウトでMemoryLayout.scale(long, long)を呼び出すために使用できるメソッド・ハンドルを返します。
    指定されたパスから選択されたレイアウトを返します。パス内の初期レイアウトはこのレイアウトです。
    メモリー・セグメントを指定して、指定されたレイアウト・パスによって選択されたレイアウトに対応するsliceを返すメソッド・ハンドルを作成します。パス内の初期レイアウトはこのレイアウトです。
    このレイアウトの文字列表現を返します。
    指定されたレイアウト・パスによって選択されたオフセットでメモリー・セグメントにアクセスするvarハンドルを作成します。パス内の初期レイアウトはこのレイアウトになります。
  • メソッドの詳細

    • memberLayouts

      List<MemoryLayout> memberLayouts()
      このグループ・レイアウトのメンバー・レイアウトを返します。
      APIのノート:
      メンバー・レイアウトが返される順序は、グループ・レイアウト・ファクトリ・メソッド(「MemoryLayout.structLayout(MemoryLayout...)およびMemoryLayout.unionLayout(MemoryLayout...)」を参照)のいずれかにメンバー・レイアウトが渡された順序と同じです。
      戻り値:
      このグループ・レイアウトのメンバー・レイアウト
    • withName

      GroupLayout withName(String name)
      このレイアウトと同じ特性を持つメモリー・レイアウトを、指定された名前で返します。
      定義:
      インタフェースMemoryLayout内のwithName
      パラメータ:
      name - レイアウト名
      戻り値:
      このレイアウトと同じ特性を持つが、指定された名前を持つメモリー・レイアウト
      関連項目:
    • withoutName

      GroupLayout withoutName()
      このレイアウトと同じ特性を持つメモリー・レイアウトを名前なしで返します。
      定義:
      インタフェースMemoryLayout内のwithoutName
      戻り値:
      このレイアウトと同じ特性を持つが名前のないメモリー・レイアウト
      関連項目:
    • withByteAlignment

      GroupLayout withByteAlignment(long byteAlignment)
      このレイアウトと同じ特性を持つメモリー・レイアウトを返しますが、指定された整列制約(バイト単位)を使用します。
      定義:
      インタフェースMemoryLayout内のwithByteAlignment
      パラメータ:
      byteAlignment - レイアウト整列制約(バイト単位)
      戻り値:
      このレイアウトと同じ特性を持つメモリー・レイアウト。ただし、指定された整列制約(バイト単位)
      スロー:
      IllegalArgumentException - byteAlignmentが2の累乗でない場合
      IllegalArgumentException - byteAlignmentMより小さい場合。ここで、Mは、このグループ・レイアウトに関連付けられているメンバー・レイアウトの最大整列制約です。