- すべてのスーパー・インタフェース:
MemoryLayoutPREVIEW
,ValueLayoutPREVIEW
public sealed interface AddressLayout extends ValueLayoutPREVIEW
AddressLayout
は、JavaプラットフォームのプレビューAPIです。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
メモリーの一部のリージョンのアドレスをモデル化するために使用される値のレイアウト。 アドレス・レイアウトに関連付けられた運送業者は
MemorySegment.class
です。 アドレス・レイアウトのサイズと配置は、プラットフォームに依存する (たとえば、64ビット・プラットフォームでは、アドレス・レイアウトのサイズと整列が8バイトに設定されます)です。
アドレス・レイアウトでは、オプションで「ターゲット・レイアウト」を使用できます。 ターゲット・レイアウトがT
のアドレス・レイアウトを使用して、レイアウトがT
のメモリー・リージョンのアドレスをモデル化できます。 たとえば、ターゲット・レイアウトがValueLayout.JAVA_INT
PREVIEWのアドレス・レイアウトを使用して、4バイトの長さのメモリー・リージョンのアドレスをモデル化できます。 ターゲット・レイアウトの指定は、次の状況で役立ちます:
- 別のメモリー・セグメントからアドレスを読み取ることによって取得されたメモリー・セグメントにアクセスする場合(例:
MemorySegment.getAtIndex(AddressLayout, long)
PREVIEW ; Linker.downcallHandle(FunctionDescriptor, Option...)
PREVIEWを使用して、停止コール・メソッド・ハンドルを作成する場合- アップコール・スタブを作成する場合は、
Linker.upcallStub(MethodHandle, FunctionDescriptor, Arena, Option...)
PREVIEWを使用します。
- 導入されたバージョン:
- 19
- 関連項目:
-
ネストされたクラスのサマリー
インタフェースjava.lang.foreign.MemoryLayoutPREVIEWで宣言されたネストされたクラス/インタフェース
MemoryLayout.PathElementPREVIEW
インタフェースjava.lang.foreign.ValueLayoutPREVIEWで宣言されたネストされたクラス/インタフェース
ValueLayout.OfBooleanPREVIEW, ValueLayout.OfBytePREVIEW, ValueLayout.OfCharPREVIEW, ValueLayout.OfDoublePREVIEW, ValueLayout.OfFloatPREVIEW, ValueLayout.OfIntPREVIEW, ValueLayout.OfLongPREVIEW, ValueLayout.OfShortPREVIEW
-
フィールドのサマリー
インタフェースjava.lang.foreign.ValueLayoutPREVIEWで宣言されたフィールド
ADDRESS, ADDRESS_UNALIGNED, JAVA_BOOLEAN, JAVA_BYTE, JAVA_CHAR, JAVA_CHAR_UNALIGNED, JAVA_DOUBLE, JAVA_DOUBLE_UNALIGNED, JAVA_FLOAT, JAVA_FLOAT_UNALIGNED, JAVA_INT, JAVA_INT_UNALIGNED, JAVA_LONG, JAVA_LONG_UNALIGNED, JAVA_SHORT, JAVA_SHORT_UNALIGNED
-
メソッドのサマリー
修飾子と型メソッド説明このアドレス・レイアウト (もしあれば)に関連付けられたターゲット・レイアウトを返します。withByteAlignment
(long byteAlignment) このレイアウトと同じ特性を持つメモリー・レイアウトを返しますが、指定された整列制約(バイト単位)を使用します。このレイアウトと同じ特性を持つメモリー・レイアウトを、指定された名前で返します。このレイアウトと同じ特性を持つ値レイアウトを、指定されたバイト順序で返します。このレイアウトと同じ特性を持つメモリー・レイアウトを名前なしで返します。このアドレス・レイアウトと同じキャリア、整列制約、名前および順序で、ターゲット・レイアウトなしでアドレス・レイアウトを返します。withTargetLayout
(MemoryLayoutPREVIEW layout) このアドレス・レイアウトと同じキャリア、整列制約、名前および順序で、指定されたターゲット・レイアウトに関連付けられているアドレス・レイアウトを返します。インタフェースjava.lang.foreign.MemoryLayoutPREVIEWで宣言されたメソッド
byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, select, sliceHandle, toString, varHandle
インタフェースjava.lang.foreign.ValueLayoutPREVIEWで宣言されたメソッド
arrayElementVarHandle, carrier, order
-
メソッドの詳細
-
withName
AddressLayoutPREVIEW withName(String name) このレイアウトと同じ特性を持つメモリー・レイアウトを、指定された名前で返します。- 定義:
- インタフェース
MemoryLayoutPREVIEW
内のwithName
- 定義:
- インタフェース
ValueLayoutPREVIEW
内のwithName
- パラメータ:
name
- レイアウト名。- 戻り値:
- このレイアウトと同じ特性を持つが、指定された名前を持つメモリー・レイアウト
- 関連項目:
-
withoutName
AddressLayoutPREVIEW withoutName()このレイアウトと同じ特性を持つメモリー・レイアウトを名前なしで返します。- 定義:
- インタフェース
MemoryLayoutPREVIEW
内のwithoutName
- 定義:
- インタフェース
ValueLayoutPREVIEW
内のwithoutName
- 戻り値:
- このレイアウトと同じ特性を持つが名前のないメモリー・レイアウト
- 関連項目:
-
withByteAlignment
AddressLayoutPREVIEW withByteAlignment(long byteAlignment) このレイアウトと同じ特性を持つメモリー・レイアウトを返しますが、指定された整列制約(バイト単位)を使用します。- 定義:
- インタフェース
MemoryLayoutPREVIEW
内のwithByteAlignment
- 定義:
- インタフェース
ValueLayoutPREVIEW
内のwithByteAlignment
- パラメータ:
byteAlignment
- バイト単位で表されるレイアウト整列制約。- 戻り値:
- このレイアウトと同じ特性を持つメモリー・レイアウト。ただし、指定された整列制約(バイト単位)
-
withOrder
AddressLayoutPREVIEW withOrder(ByteOrder order) このレイアウトと同じ特性を持つ値レイアウトを、指定されたバイト順序で返します。- 定義:
- インタフェース
ValueLayoutPREVIEW
内のwithOrder
- パラメータ:
order
- 必要なバイト順。- 戻り値:
- このレイアウトと同じ特性を持つが、指定されたバイト順序を持つ値レイアウト
-
withTargetLayout
AddressLayoutPREVIEW withTargetLayout(MemoryLayoutPREVIEW layout) このアドレス・レイアウトと同じキャリア、整列制約、名前および順序で、指定されたターゲット・レイアウトに関連付けられているアドレス・レイアウトを返します。 返されるアドレス・レイアウトでは、RAWアドレスに「メモリー・セグメント」PREVIEWとしてアクセスでき、そのサイズは指定されたレイアウトのサイズに設定されます。 さらに、アクセスされたRAWアドレスが、指定されたレイアウトの整列制約と互換性がない場合、IllegalArgumentExceptionがスローされます。- APIのノート:
- このメソッドは、アドレス・レイアウトの作成にも使用できます。アドレス・レイアウトを使用すると、最大サイズ(e.g. Long.MAX_VALUE)のネイティブ・メモリー・セグメントが作成されます。 これを行うには、次のように、サイズが指定されていないターゲット順序レイアウトを使用します:
AddressLayout addressLayout = ... AddressLayout unboundedLayout = addressLayout.withTargetLayout( MemoryLayout.sequenceLayout(ValueLayout.JAVA_BYTE));
このメソッドは「制限付き」です。 制限されたメソッドは安全ではなく、誤って使用するとJVMがクラッシュしたり、悪化したりするとメモリーが破損する可能性があります。 したがって、クライアントは制限付きメソッドに応じて屈折し、可能な場合は安全でサポートされている機能を使用する必要があります。
- パラメータ:
layout
- ターゲット・レイアウト。- 戻り値:
- このレイアウトと同じ特性を持つが、指定されたターゲット・レイアウトを持つアドレス・レイアウト。
- 例外:
IllegalCallerException
- 呼び出し元が、ネイティブ・アクセスが有効になっていないモジュール内にある場合。- 関連項目:
-
withoutTargetLayout
AddressLayoutPREVIEW withoutTargetLayout()このアドレス・レイアウトと同じキャリア、整列制約、名前および順序で、ターゲット・レイアウトなしでアドレス・レイアウトを返します。- APIのノート:
- これは、ターゲット・レイアウトが異なるが等しくない2つのアドレス・レイアウトを比較する場合に便利です。
- 戻り値:
- このレイアウトと同じ特性を持つが、ターゲット・レイアウトがないアドレス・レイアウト。
- 関連項目:
-
targetLayout
Optional<MemoryLayoutPREVIEW> targetLayout()このアドレス・レイアウト(もしあれば)に関連付けられたターゲット・レイアウトを返します。- 戻り値:
- このアドレス・レイアウトに関連付けられたターゲット・レイアウト (もしあれば)
-
AddressLayout
を使用できます。