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

クラスGroupLayout

java.lang.Object
java.lang.foreign.GroupLayout
すべての実装されたインタフェース:
MemoryLayoutPREVIEW

public final class GroupLayout extends Object implements MemoryLayoutPREVIEW
GroupLayoutは、JavaプラットフォームのプレビューAPIです。
プレビュー機能が有効な場合のみ、プログラムでGroupLayoutを使用できます。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
複数の「メンバー・レイアウト」を集計する複合レイアウト。 メンバー・レイアウトを結合する方法は2つあります: メンバー・レイアウトが順番にレイアウトされている場合、結果のグループ・レイアウトは「構造体」 (MemoryLayout.structLayout(MemoryLayout...)PREVIEWを参照してください)であるとみなされます。逆に、すべてのメンバー・レイアウトが同じ開始オフセットに配置されている場合、結果のグループ・レイアウトはunion (MemoryLayout.unionLayout(MemoryLayout...)PREVIEWを参照してください)であるとみなされます。
実装要件:
このクラスは、不変、スレッド・セーフおよびvalue-basedです。
導入されたバージョン:
19
  • ネストされたクラスのサマリー

    インタフェースjava.lang.foreign.MemoryLayoutPREVIEWで宣言されたネストされたクラス/インタフェース

    MemoryLayout.PathElementPREVIEW
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    final long
    このレイアウトに関連付けられている配置制約をビット単位で返します。
    long
    レイアウト・サイズをビット単位で返します。
    long
    レイアウト・サイズをバイト単位で返します。
    boolean
    equals(Object other)
    指定されたオブジェクトをこのレイアウトと比較し、等価性を維持します。
    int
    このレイアウトのハッシュ・コード値を返します。
    boolean
    このレイアウトがパディング・レイアウトの場合、trueを返します。
    boolean
    このグループ・レイアウトが構造体レイアウトの場合、trueを返します。
    boolean
    このグループ・レイアウトが和集合レイアウトの場合、trueを返します。
    このグループに関連付けられたメンバー・レイアウトを返します。
    このレイアウトに関連付けられている名前(もしあれば)を返します。
    このレイアウトの文字列表現を返します。
    withBitAlignment(long alignmentBits)
    このレイアウトと同じサイズおよび名前のメモリー・レイアウトを返しますが、指定された整列制約(ビット単位)を使用します。
    サイズと位置合わせの制約がこのレイアウトと同じですが、指定された名前でメモリー・レイアウトを返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • メソッドの詳細

    • memberLayouts

      public List<MemoryLayoutPREVIEW> memberLayouts()
      このグループに関連付けられたメンバー・レイアウトを返します。
      APIのノート:
      メンバー・レイアウトが返される順序は、グループ・レイアウトのファクトリ・メソッド(MemoryLayout.structLayout(MemoryLayout...)PREVIEWMemoryLayout.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つのレイアウトが同じ種類であり、同じサイズ、名前および位置合せ制約を持つ場合は、それらが等価であるとみなされます。 また、レイアウトの種類に応じて、追加の条件を満たす必要があります:
      定義:
      インタフェース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

      public final Optional<String> name()
      インタフェースからコピーされた説明:MemoryLayout
      このレイアウトに関連付けられている名前(もしあれば)を返します。
      定義:
      インタフェースMemoryLayoutPREVIEW内のname
      戻り値:
      このレイアウトに関連付けられている名前(もしあれば)
      関連項目:
    • bitAlignment

      public final long bitAlignment()
      インタフェースからコピーされた説明:MemoryLayout
      このレイアウトに関連付けられている配置制約をビット単位で返します。 レイアウトの位置合せにより、レイアウトのビット単位の位置合せである2つのAの機能が定義されます。 A <= 8の場合、A/8は、このレイアウトを適切にポイントするポインタに対して整列する必要があるバイト数です。 このため、:
      • A=8では、すべての(通常の意味で)がパケットで共有されないことを意味します。
      • A=64は、aligned (on LP64)、A=32 int aligned、A=16 short 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