- すべての実装されたインタフェース:
- Constable,- MemoryLayout
MemoryLayout.ofSequence(3, MemoryLayout.ofValueBits(32, ByteOrder.BIG_ENDIAN));
 
MemoryLayout.ofStruct(
    MemoryLayout.ofValueBits(32, ByteOrder.BIG_ENDIAN),
    MemoryLayout.ofValueBits(32, ByteOrder.BIG_ENDIAN),
    MemoryLayout.ofValueBits(32, ByteOrder.BIG_ENDIAN));
 
 これはvalue-basedクラスです。プログラマは、equalのインスタンスを交換可能として扱い、同期にインスタンスを使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 比較する場合は、equalsメソッドを使用することをお薦めします。 
 
 特に指定がないかぎり、null引数、またはこのクラスのメソッドに1つ以上のnull要素を含む配列引数を渡すと、NullPointerExceptionがスローされます。 
- 実装要件:
- このクラスは不変でスレッドセーフです。
- 
ネストされたクラスのサマリーインタフェースjdk.incubator.foreign.MemoryLayoutで宣言されたネストされたクラス/インタフェースMemoryLayout.PathElement
- 
フィールドのサマリーインタフェースjdk.incubator.foreign.MemoryLayoutで宣言されているフィールドLAYOUT_NAME
- 
メソッドのサマリー修飾子と型メソッド説明指定された名前の(それが存在する場合)の属性を返します。このレイアウトに関連付けられた属性名のストリームを返します。longこのレイアウトに関連付けられている配置制約をビット単位で返します。longbitSize()レイアウト・サイズをビット単位で計算します。この順序レイアウト(もしあれば)の要素カウントを返します。この順序レイアウトに関連付けられた要素レイアウトを返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。flatten()要素レイアウトが、このシーケンス・レイアウトの要素レイアウトを再帰的にトラバースすることで検出される最初の非シーケンス要素レイアウトである、新しいフラット化シーケンス・レイアウトを返します。inthashCode()オブジェクトのハッシュ・コード値を返します。booleanhasSize()このレイアウトには指定されたサイズがありますか?booleanこれはパディング・レイアウト(例:MemoryLayout.ofPaddingBits(long)から作成されたレイアウト)ですか。name()このレイアウトに関連するname (もしあれば)を返します。reshape(long... elementCounts)このシーケンス・レイアウト(flatten()を参照してください)の平坦化された投影内の要素レイアウトが、指定された要素カウントに従って1つ以上のネストされたシーケンス・レイアウトに再配置される新しいシーケンス・レイアウトを返します。toString()オブジェクトの文字列表現を返します。withAttribute(String name, Constable value)このレイアウトと同じ属性と新しく指定された属性を持つ新しいメモリー・レイアウトを返します。withBitAlignment(long alignmentBits)目的の位置合せ制約を機能する新しいレイアウトを作成します。withElementCount(long elementCount)要素レイアウト、位置合せ制約および名前がこのシーケンス・レイアウトと同じであり、指定された要素数が含まれる新しいシーケンス・レイアウトを取得します。必要なレイアウトnameが機能する新しいレイアウトを作成します。クラス java.lang.Objectで宣言されたメソッドclone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitインタフェースjdk.incubator.foreign.MemoryLayoutで宣言されたメソッドbitOffset, bitOffsetHandle, byteAlignment, byteOffset, byteOffsetHandle, byteSize, map, select, varHandle
- 
メソッドの詳細- 
elementLayoutpublic MemoryLayout elementLayout()この順序レイアウトに関連付けられた要素レイアウトを返します。- 戻り値:
- この順序レイアウトに関連付けられた要素レイアウト。
 
- 
elementCountpublic OptionalLong elementCount()この順序レイアウト(もしあれば)の要素カウントを返します。- 戻り値:
- この順序レイアウト(もしあれば)の要素数。
 
- 
withElementCountpublic SequenceLayout withElementCount(long elementCount)要素レイアウト、位置合せ制約および名前がこのシーケンス・レイアウトと同じであり、指定された要素数が含まれる新しいシーケンス・レイアウトを取得します。- パラメータ:
- elementCount- 新規要素数。
- 戻り値:
- 指定された要素数の新規の順序。
- 例外:
- IllegalArgumentException-- elementCount < 0の場合。
 
- 
reshapepublic SequenceLayout reshape(long... elementCounts)このシーケンス・レイアウト(flatten()を参照してください)の平坦化された投影内の要素レイアウトが、指定された要素カウントに従って1つ以上のネストされたシーケンス・レイアウトに再配置される新しいシーケンス・レイアウトを返します。 この変換では、レイアウト・サイズが保持されます。つまり、指定された要素数を乗算すると、このシーケンス・レイアウトのフラット化された投影と同じ要素数が生成される必要があります。たとえば、次のような種類のシーケンス・レイアウトがあるとします: var seq = MemoryLayout.ofSequence(4, MemoryLayout.ofSequence(3, MemoryLayouts.JAVA_INT));seq.reshape(2, 6)をコールすると、次のシーケンス・レイアウトが生成されます:var reshapeSeq = MemoryLayout.ofSequence(2, MemoryLayout.ofSequence(6, MemoryLayouts.JAVA_INT));指定された要素数のいずれかが特別な値 -1の場合、その位置の要素数は、残りの要素数およびこのレイアウトのフラット化された投影の要素数から推測されます。 たとえば、前述のreshapeSeqに相当するレイアウトは、次の方法で計算することもできます:var reshapeSeqImplicit1 = seq.reshape(-1, 6); var reshapeSeqImplicit2 = seq.reshape(2, -1);- パラメータ:
- elementCounts- 要素数の配列。この配列の最大数は- -1です。
- 戻り値:
- このシーケンス・レイアウトのフラット化された投影内の要素レイアウト(flatten()を参照してください)が、ネストされたシーケンス・レイアウトに再配置される新しいシーケンス・レイアウト。
- 例外:
- UnsupportedOperationException- このシーケンス・レイアウトに要素数がない場合。
- IllegalArgumentException- 複数の要素数が- -1に設定されている場合、または1つ以上の要素数が- <= 0(ただし、- -1以外)である場合、または必要な推論後に要素数を乗算しても、この順序レイアウトのフラット化された投影と同じ要素数は得られません。
 
- 
flattenpublic SequenceLayout flatten()要素レイアウトが、このシーケンス・レイアウトの要素レイアウトを再帰的にトラバースすることで検出される最初の非シーケンス要素レイアウトである、新しいフラット化シーケンス・レイアウトを返します。 この変換によってレイアウト・サイズが保持されます。このシーケンスのレイアウトにネストされたシーケンスのレイアウトがドロップされ、返されたシーケンスのレイアウトにその要素数が組み込まれます。 たとえば、次のような種類のシーケンス・レイアウトがあるとします:var seq = MemoryLayout.ofSequence(4, MemoryLayout.ofSequence(3, MemoryLayouts.JAVA_INT));seq.flatten()をコールすると、次のシーケンス・レイアウトが生成されます:var flattenedSeq = MemoryLayout.ofSequence(12, MemoryLayouts.JAVA_INT);- 戻り値:
- このレイアウト(ただし、要素数が異なる可能性があります。)と同じサイズの新しいシーケンス・レイアウト。その要素レイアウトはシーケンス・レイアウトではありません。
- 例外:
- UnsupportedOperationException- この順序レイアウト、またはフラット化されるネストされた順序レイアウトのいずれかに要素数がない場合。
 
- 
toStringpublic String toString()次のクラスからコピーされた説明:Objectオブジェクトの文字列表現を返します。 一般に、toStringメソッドは、このオブジェクトを「テキストで表す」文字列を返します。 この結果は、人間が読める簡潔で有益な情報であるべきです。 すべてのサブクラスで、このメソッドをオーバーライドすることをお勧めします。クラス ObjectのtoStringメソッドは、オブジェクトがインスタンスになっている元のクラスの名前、アットマーク文字「@」、およびオブジェクトのハッシュ・コードの符号なし16進数表現から構成される文字列を返します。 つまり、このメソッドは次の値と等しい文字列を返します。getClass().getName() + '@' + Integer.toHexString(hashCode()) - 定義:
- インタフェースMemoryLayout内のtoString
- オーバーライド:
- toString、クラス:- Object
- 戻り値:
- このオブジェクトの文字列表現
 
- 
equalspublic boolean equals(Object other)次のクラスからコピーされた説明:Objectこのオブジェクトと他のオブジェクトが等しいかどうかを示します。equalsメソッドは、null以外のオブジェクト参照での同値関係を実装します。- 反射性(reflexive): null以外の参照値xについて、x.equals(x)はtrueを返します。
- 対称性(symmetric): null以外の参照値xおよびyについて、y.equals(x)がtrueを返す場合に限り、x.equals(y)はtrueを返します。
- 推移性(transitive): null以外の参照値x、y、およびzについて、x.equals(y)がtrueを返し、y.equals(z)がtrueを返す場合、x.equals(z)はtrueを返します。
- 一貫性(consistent): null以外の参照値xおよびyについて、x.equals(y)の複数の呼出しは、このオブジェクトに対するequalsによる比較で使われた情報が変更されていなければ、一貫してtrueを返すか、一貫してfalseを返します。
- null以外の参照値xについて、x.equals(null)はfalseを返します。
 Objectクラスのequalsメソッドは、もっとも比較しやすいオブジェクトの同値関係を実装します。つまり、null以外の参照値xとyについて、このメソッドはxとyが同じオブジェクトを参照する(x == yがtrue)場合にだけtrueを返します。通常、このメソッドをオーバーライドする場合は、 hashCodeメソッドを常にオーバーライドして、「等価なオブジェクトは等価なハッシュ・コードを保持する必要がある」というhashCodeメソッドの汎用規約に従う必要があることに留意してください。- 定義:
- インタフェースMemoryLayout内のequals
- パラメータ:
- other- 比較対象の参照オブジェクト。
- 戻り値:
- このオブジェクトがobj引数と同じである場合はtrue、それ以外の場合はfalse。
- 関連項目:
- Object.hashCode()、- HashMap
 
- 反射性(reflexive): null以外の参照値
- 
hashCodepublic int hashCode()次のクラスからコピーされた説明:Objectオブジェクトのハッシュ・コード値を返します。 このメソッドは、HashMapによって提供されるハッシュ表などの、ハッシュ表の利点のためにサポートされています。hashCodeの一般的な規則は次のとおりです。- Javaアプリケーションの実行中に同じオブジェクトに対して複数回呼び出された場合は常に、このオブジェクトに対するequalsの比較で使用される情報が変更されていなければ、hashCodeメソッドは常に同じ整数を返す必要があります。 ただし、この整数は同じアプリケーションの実行ごとに同じである必要はありません。
- equals(Object)メソッドに従って2つのオブジェクトが等しい場合は、2つの各オブジェクトに対する- hashCodeメソッドの呼出しによって同じ整数の結果が生成される必要があります。
- Object.equals(java.lang.Object)メソッドに従って2つのオブジェクトが等しくない場合は、2つの各オブジェクトに対する- hashCodeメソッドの呼出しによって異なる整数の結果が生成される必要はありません。 ただし、プログラマは、等しくないオブジェクトに対して異なる整数の結果を生成すると、ハッシュ表のパフォーマンスが向上する可能性があることに注意するようにしてください。
 - 定義:
- インタフェースMemoryLayout内のhashCode
- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
- Object.equals(java.lang.Object),- System.identityHashCode(java.lang.Object)
 
- Javaアプリケーションの実行中に同じオブジェクトに対して複数回呼び出された場合は常に、このオブジェクトに対する
- 
describeConstablepublic Optional<DynamicConstantDesc<SequenceLayout>> describeConstable()インタフェースからコピーされた説明:MemoryLayout
- 
withNamepublic SequenceLayout withName(String name)必要なレイアウトnameが機能する新しいレイアウトを作成します。これは次のコードと等価です。 withAttribute(LAYOUT_NAME, name);- 定義:
- インタフェースMemoryLayout内のwithName
- パラメータ:
- name- レイアウト名。
- 戻り値:
- 関連付けられたnameを除き、このレイアウトと同じ新しいレイアウト。
- 関連項目:
- MemoryLayout.name()
 
- 
withBitAlignmentpublic SequenceLayout withBitAlignment(long alignmentBits)目的の位置合せ制約を機能する新しいレイアウトを作成します。- 定義:
- インタフェースMemoryLayout内のwithBitAlignment
- パラメータ:
- alignmentBits- レイアウト位置合せ制約。ビットで表されます。
- 戻り値:
- このレイアウトと同じ新しいレイアウト。ただし、関連付けられている位置合せ制約を除きます。
 
- 
withAttributepublic SequenceLayout withAttribute(String name, Constable value)このレイアウトと同じ属性と新しく指定された属性を持つ新しいメモリー・レイアウトを返します。 このレイアウトに同じ名前の属性がすでに含まれている場合は、返されるレイアウトで既存の属性値が上書きされます。- 定義:
- インタフェースMemoryLayout内のwithAttribute
- パラメータ:
- name- 属性名
- value- 属性値
- 戻り値:
- このレイアウトと同じ属性と新しく指定された属性を備えた新しいメモリー・レイアウト。
 
- 
nameインタフェースからコピーされた説明:MemoryLayoutこのレイアウトに関連するname (もしあれば)を返します。これは次のコードと等価です。 attribute(LAYOUT_NAME).map(String.class::cast);- 定義:
- インタフェースMemoryLayout内のname
- 戻り値:
- レイアウトname (もしあれば)。
- 関連項目:
- MemoryLayout.withName(String)
 
- 
属性インタフェースからコピーされた説明:MemoryLayout指定された名前の(それが存在する場合)の属性を返します。- 定義:
- インタフェースMemoryLayout内のattribute
- パラメータ:
- name- 属性名
- 戻り値:
- 指定された名前の(それが存在する場合)の属性。
 
- 
attributesインタフェースからコピーされた説明:MemoryLayoutこのレイアウトに関連付けられた属性名のストリームを返します。- 定義:
- インタフェースMemoryLayout内のattributes
- 戻り値:
- このレイアウトに関連付けられた属性名のストリーム。
 
- 
bitAlignmentpublic 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)を参照してください)に明示的な位置合せ制約が設定されていない場合、このメソッドはこのレイアウトに関連付けられた「自然整列」制約(ビット単位)を返します。- 定義:
- インタフェースMemoryLayout内のbitAlignment
- 戻り値:
- レイアウト位置合せ制約をビット単位で指定します。
 
- 
hasSizepublic boolean hasSize()インタフェースからコピーされた説明:MemoryLayoutこのレイアウトには指定されたサイズがありますか? レイアウトが(次を含む)でサイズが未指定の(elementCount()を参照してください)の順序レイアウトである場合、そのレイアウトには指定されたサイズがありません。 値レイアウト(ValueLayoutを参照してください)およびパディングのレイアウト(MemoryLayout.ofPaddingBits(long)を参照してください) alwaysには指定されたサイズがあるため、このメソッドは常にtrueを返します。- 定義:
- インタフェースMemoryLayout内のhasSize
- 戻り値:
- このレイアウトが指定されたサイズの場合、true。
 
- 
bitSizepublic long bitSize()インタフェースからコピーされた説明:MemoryLayoutレイアウト・サイズをビット単位で計算します。- 定義:
- インタフェースMemoryLayout内のbitSize
- 戻り値:
- レイアウトのサイズ(ビット単位)。
 
- 
isPaddingpublic boolean isPadding()インタフェースからコピーされた説明:MemoryLayoutこれはパディング・レイアウト(例:MemoryLayout.ofPaddingBits(long)から作成されたレイアウト)ですか。- 定義:
- インタフェースMemoryLayout内のisPadding
- 戻り値:
- このレイアウトがパディング・レイアウトの場合はtrue。
 
 
-