java.lang.Object
java.lang.foreign.GroupLayout
- すべての実装されたインタフェース:
MemoryLayoutPREVIEW
public final class GroupLayout extends Object implements MemoryLayoutPREVIEW
GroupLayoutは、JavaプラットフォームのプレビューAPIです。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
複数の「メンバー・レイアウト」を集計する複合レイアウト。 メンバー・レイアウトを結合する方法は2つあります: メンバー・レイアウトが順番にレイアウトされている場合、結果のグループ・レイアウトは「構造体」 (
MemoryLayout.structLayout(MemoryLayout...)PREVIEWを参照してください)であるとみなされます。逆に、すべてのメンバー・レイアウトが同じ開始オフセットに配置されている場合、結果のグループ・レイアウトはunion (MemoryLayout.unionLayout(MemoryLayout...)PREVIEWを参照してください)であるとみなされます。 - 実装要件:
- このクラスは、不変、スレッド・セーフおよびvalue-basedです。
- 導入されたバージョン:
- 19
-
ネストされたクラスのサマリー
インタフェースjava.lang.foreign.MemoryLayoutPREVIEWで宣言されたネストされたクラス/インタフェース
MemoryLayout.PathElementPREVIEW -
メソッドのサマリー
修飾子と型メソッド説明final longこのレイアウトに関連付けられている配置制約をビット単位で返します。longbitSize()レイアウト・サイズをビット単位で返します。longbyteSize()レイアウト・サイズをバイト単位で返します。boolean指定されたオブジェクトをこのレイアウトと比較し、等価性を維持します。inthashCode()このレイアウトのハッシュ・コード値を返します。booleanこのレイアウトがパディング・レイアウトの場合、trueを返します。booleanisStruct()このグループ・レイアウトが構造体レイアウトの場合、trueを返します。booleanisUnion()このグループ・レイアウトが和集合レイアウトの場合、trueを返します。このグループに関連付けられたメンバー・レイアウトを返します。name()このレイアウトに関連付けられている名前(もしあれば)を返します。toString()このレイアウトの文字列表現を返します。withBitAlignment(long alignmentBits) このレイアウトと同じサイズおよび名前のメモリー・レイアウトを返しますが、指定された整列制約(ビット単位)を使用します。サイズと位置合わせの制約がこのレイアウトと同じですが、指定された名前でメモリー・レイアウトを返します。インタフェースjava.lang.foreign.MemoryLayoutPREVIEWで宣言されたメソッド
bitAlignment, bitOffset, bitOffsetHandle, bitSize, byteAlignment, byteOffset, byteOffsetHandle, byteSize, isPadding, name, select, sliceHandle, varHandle
-
メソッドの詳細
-
memberLayouts
public List<MemoryLayoutPREVIEW> memberLayouts()このグループに関連付けられたメンバー・レイアウトを返します。- APIのノート:
- メンバー・レイアウトが返される順序は、グループ・レイアウトのファクトリ・メソッド(
MemoryLayout.structLayout(MemoryLayout...)PREVIEW、MemoryLayout.unionLayout(MemoryLayout...)PREVIEWを参照してください)のいずれかにメンバー・レイアウトが渡される順序と同じです。 - 戻り値:
- このグループに関連付けられているメンバー・レイアウト。
-
toString
public String toString()このレイアウトの文字列表現を返します。- 定義:
- インタフェース
MemoryLayoutPREVIEW内のtoString - 戻り値:
- このレイアウトの文字列表現
-
isStruct
public boolean isStruct()このグループ・レイアウトが構造体レイアウトの場合、trueを返します。- 戻り値:
true。このグループ・レイアウトが構造レイアウトの場合
-
isUnion
public boolean isUnion()このグループ・レイアウトが和集合レイアウトの場合、trueを返します。- 戻り値:
true(このグループ・レイアウトが結合レイアウトの場合)
-
equals
public boolean equals(Object other) 指定されたオブジェクトをこのレイアウトと比較し、等価性を維持します。 指定されたオブジェクトもレイアウトであり、このレイアウトと等しい場合にのみ、trueを返します。 2つのレイアウトが同じ種類であり、同じサイズ、名前および位置合せ制約を持つ場合は、それらが等価であるとみなされます。 また、レイアウトの種類に応じて、追加の条件を満たす必要があります:- orderPREVIEWとcarrierPREVIEWが同じ場合、2つの値のレイアウトは等しいとみなされます
- 同じ要素数(
SequenceLayout.elementCount()PREVIEWを参照してください)を持つ場合、およびそれらの要素レイアウト(SequenceLayout.elementLayout()PREVIEWを参照してください)も等しい場合、2つの順序レイアウトは等しいとみなされます - 2つのグループ・レイアウトが同じ種類の(
isStruct()、isUnion()を参照) である場合、およびそのメンバー・レイアウト(memberLayouts()を参照) も同じである場合は、等価であるとみなされます。
- 定義:
- インタフェース
MemoryLayoutPREVIEW内のequals - パラメータ:
other- このレイアウトと等価性を持たせるために比較するオブジェクト。- 戻り値:
- 指定されたオブジェクトがこのレイアウトに等しい場合、
true。 - 関連項目:
-
hashCode
public int hashCode()このレイアウトのハッシュ・コード値を返します。- 定義:
- インタフェース
MemoryLayoutPREVIEW内のhashCode - 戻り値:
- このレイアウトのハッシュ・コード値
- 関連項目:
-
withName
public GroupLayoutPREVIEW withName(String name) サイズと位置合わせの制約がこのレイアウトと同じですが、指定された名前でメモリー・レイアウトを返します。- 定義:
- インタフェース
MemoryLayoutPREVIEW内のwithName - パラメータ:
name- レイアウト名。- 戻り値:
- 指定された名前のメモリー・レイアウト。
- 関連項目:
-
withBitAlignment
public GroupLayoutPREVIEW withBitAlignment(long alignmentBits) このレイアウトと同じサイズおよび名前のメモリー・レイアウトを返しますが、指定された整列制約(ビット単位)を使用します。- 定義:
- インタフェース
MemoryLayoutPREVIEW内のwithBitAlignment - パラメータ:
alignmentBits- レイアウト位置合せ制約。ビットで表されます。- 戻り値:
- 指定された整列制約を持つメモリー・レイアウト。
-
name
インタフェースからコピーされた説明:MemoryLayoutこのレイアウトに関連付けられている名前(もしあれば)を返します。- 定義:
- インタフェース
MemoryLayoutPREVIEW内のname - 戻り値:
- このレイアウトに関連付けられている名前(もしあれば)
- 関連項目:
-
bitAlignment
public final long bitAlignment()インタフェースからコピーされた説明:MemoryLayoutこのレイアウトに関連付けられている配置制約をビット単位で返します。 レイアウトの位置合せにより、レイアウトのビット単位の位置合せである2つのAの機能が定義されます。A <= 8の場合、A/8は、このレイアウトを適切にポイントするポインタに対して整列する必要があるバイト数です。 このため、:A=8では、すべての(通常の意味で)がパケットで共有されないことを意味します。A=64は、aligned (on LP64)、A=32int aligned、A=16short alignedなどの単語を意味します。A=512は、x86/SV ABI (AVX-512データ)で必要とされる最も厳密な位置合せです。
MemoryLayout.withBitAlignment(long)PREVIEWを参照してください)に明示的な位置合せ制約が設定されていない場合、このメソッドは、このレイアウトに関連付けられている「自然整列」制約(ビット単位)を返します。- 定義:
- インタフェース
MemoryLayoutPREVIEW内のbitAlignment - 戻り値:
- レイアウト位置合せ制約をビット単位で指定します。
-
byteSize
public long byteSize()インタフェースからコピーされた説明:MemoryLayoutレイアウト・サイズをバイト単位で返します。- 定義:
- インタフェース
MemoryLayoutPREVIEW内のbyteSize - 戻り値:
- レイアウト・サイズ(バイト)
-
bitSize
public long bitSize()インタフェースからコピーされた説明:MemoryLayoutレイアウト・サイズをビット単位で返します。- 定義:
- インタフェース
MemoryLayoutPREVIEW内のbitSize - 戻り値:
- レイアウト・サイズ(ビット単位)
-
isPadding
public boolean isPadding()インタフェースからコピーされた説明:MemoryLayoutこのレイアウトがパディング・レイアウトの場合、trueを返します。- 定義:
- インタフェース
MemoryLayoutPREVIEW内のisPadding - 戻り値:
- このレイアウトがパディング・レイアウトの場合、true
-
GroupLayoutを使用できます。