インタフェースGroupLayout
- すべてのスーパー・インタフェース:
MemoryLayout
- 既知のすべてのサブインタフェース:
StructLayout, UnionLayout
public sealed interface GroupLayout extends MemoryLayout permits StructLayout, UnionLayout
複数の異種「メンバー・レイアウト」の集計である複合レイアウト。 メンバー・レイアウトを結合する方法は2つあります: メンバー・レイアウトが順番にレイアウトされている場合、結果のグループ・レイアウトは「構造体レイアウト」になります。逆に、すべてのメンバー・レイアウトが同じ開始オフセットでレイアウトされている場合、結果のグループ・レイアウトは「共用体レイアウト」になります。
- 実装要件:
- このクラスは、不変、スレッド・セーフおよびvalue-basedです。
- シール済クラス階層グラフ:
- 導入されたバージョン:
- 22
-
ネストされたクラスのサマリー
インタフェースで宣言されたネストされたクラス/インタフェース MemoryLayout
MemoryLayout.PathElement -
メソッドのサマリー
修飾子と型メソッド説明このグループ・レイアウトのメンバー・レイアウトを返します。withByteAlignment(long byteAlignment) このレイアウトと同じ特性を持つメモリー・レイアウトを返しますが、指定された整列制約(バイト単位)を使用します。このレイアウトと同じ特性を持つメモリー・レイアウトを、指定された名前で返します。このレイアウトと同じ特性を持つメモリー・レイアウトを名前なしで返します。インタフェースで宣言されたメソッド MemoryLayout
arrayElementVarHandle, byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, scale, scaleHandle, select, sliceHandle, toString, varHandle修飾子と型メソッド説明arrayElementVarHandle(MemoryLayout.PathElement... elements) 指定されたレイアウト・パスによって選択されたオフセットでメモリー・セグメント内の隣接する要素にアクセスするvarハンドルを作成します。アクセスされた要素にはこのレイアウトがあり、パスの初期レイアウトはこのレイアウトです。longこのレイアウトに関連付けられているバイト単位の配置制約を返します。longbyteOffset(MemoryLayout.PathElement... elements) 指定されたレイアウト・パスによって選択されたレイアウトのオフセットをバイト数で計算します。パス内の初期レイアウトはこのレイアウトです。byteOffsetHandle(MemoryLayout.PathElement... elements) 指定されたレイアウト・パスによって選択されたレイアウトのオフセット(バイト)を計算するメソッド・ハンドルを作成します。パス内の初期レイアウトはこのレイアウトです。longbyteSize()レイアウト・サイズをバイト単位で返します。boolean指定されたオブジェクトをこのレイアウトと比較し、等価性を維持します。inthashCode()このレイアウトのハッシュ・コード値を返します。name()このレイアウトに関連付けられている名前(もしあれば)を返します。longscale(long offset, long index) offset + (byteSize() * index)を返します。このレイアウトでMemoryLayout.scale(long, long)を呼び出すために使用できるメソッド・ハンドルを返します。select(MemoryLayout.PathElement... elements) 指定されたパスから選択されたレイアウトを返します。パス内の初期レイアウトはこのレイアウトです。sliceHandle(MemoryLayout.PathElement... elements) メモリー・セグメントを指定して、指定されたレイアウト・パスによって選択されたレイアウトに対応するsliceを返すメソッド・ハンドルを作成します。パス内の初期レイアウトはこのレイアウトです。toString()このレイアウトの文字列表現を返します。varHandle(MemoryLayout.PathElement... elements) 指定されたレイアウト・パスによって選択されたオフセットでメモリー・セグメントにアクセスする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-byteAlignmentがMより小さい場合。ここで、Mは、このグループ・レイアウトに関連付けられているメンバー・レイアウトの最大整列制約です。
-