インタフェースAddressLayout

すべてのスーパー・インタフェース:
MemoryLayout, ValueLayout

public sealed interface AddressLayout extends ValueLayout
メモリーの一部のリージョンのアドレスをモデル化するために使用される値のレイアウト。 アドレス・レイアウトに関連付けられた運送業者はMemorySegment.classです。 アドレス・レイアウトのサイズと配置は、プラットフォームに依存する (たとえば、64ビット・プラットフォームでは、アドレス・レイアウトのサイズと整列が8バイトに設定されます)です。

アドレス・レイアウトでは、オプションで「ターゲット・レイアウト」を使用できます。 ターゲット・レイアウトがTのアドレス・レイアウトを使用して、レイアウトがTのメモリー・リージョンのアドレスをモデル化できます。 たとえば、ターゲット・レイアウトがValueLayout.JAVA_INTのアドレス・レイアウトを使用して、4バイトの長さのメモリー・リージョンのアドレスをモデル化できます。 ターゲット・レイアウトの指定は、次の状況で役立ちます:

実装要件:
このインタフェースの実装は不変、スレッド・セーフ、およびvalue-basedです。
導入されたバージョン:
22
関連項目:
  • メソッドの詳細

    • withName

      AddressLayout withName(String name)
      このレイアウトと同じ特性を持つメモリー・レイアウトを、指定された名前で返します。
      定義:
      インタフェースMemoryLayout内のwithName
      定義:
      インタフェースValueLayout内のwithName
      パラメータ:
      name - レイアウト名
      戻り値:
      このレイアウトと同じ特性を持つが、指定された名前を持つメモリー・レイアウト
      関連項目:
    • withoutName

      AddressLayout withoutName()
      このレイアウトと同じ特性を持つメモリー・レイアウトを名前なしで返します。
      定義:
      インタフェースMemoryLayout内のwithoutName
      定義:
      インタフェースValueLayout内のwithoutName
      戻り値:
      このレイアウトと同じ特性を持つが名前のないメモリー・レイアウト
      関連項目:
    • withByteAlignment

      AddressLayout withByteAlignment(long byteAlignment)
      このレイアウトと同じ特性を持つメモリー・レイアウトを返しますが、指定された整列制約(バイト単位)を使用します。
      定義:
      インタフェースMemoryLayout内のwithByteAlignment
      定義:
      インタフェースValueLayout内のwithByteAlignment
      パラメータ:
      byteAlignment - レイアウト整列制約(バイト単位)
      戻り値:
      このレイアウトと同じ特性を持つメモリー・レイアウト。ただし、指定された整列制約(バイト単位)
    • withOrder

      AddressLayout withOrder(ByteOrder order)
      このレイアウトと同じ特性を持つ値レイアウトを、指定されたバイト順序で返します。
      定義:
      インタフェースValueLayout内のwithOrder
      パラメータ:
      order - 必要なバイト順序
      戻り値:
      このレイアウトと同じ特性を持つが、指定されたバイト順序を持つ値レイアウト
    • withTargetLayout

      AddressLayout withTargetLayout(MemoryLayout layout)
      withTargetLayoutは、Javaプラットフォームの制限付きメソッドです。
      プログラムは、制限付きメソッドへのアクセスが有効になっている場合にのみwithTargetLayoutを使用できます。
      制限されたメソッドは安全ではありません。不適切に使用した場合、JVMがクラッシュまたはメモリーが破損する場合があります。
      このアドレス・レイアウトと同じキャリア、整列制約、名前および順序で、指定されたターゲット・レイアウトに関連付けられているアドレス・レイアウトを返します。 返されたアドレス・レイアウトでは、サイズが指定されたレイアウトのサイズに設定されている「メモリー・セグメント」としてRAWアドレスにアクセスできます。 また、アクセスされたRAWアドレスが、指定されたレイアウトの配置制約と互換性がない場合、IllegalArgumentExceptionがスローされます。
      APIのノート:
      このメソッドは、アドレス・レイアウトの作成にも使用できます。アドレス・レイアウトを使用すると、最大サイズ(e.g. Long.MAX_VALUE)のネイティブ・メモリー・セグメントが作成されます。 これを行うには、次のように、サイズが指定されていないターゲット順序レイアウトを使用します:
       AddressLayout addressLayout   = ...
       AddressLayout unboundedLayout = addressLayout.withTargetLayout(
               MemoryLayout.sequenceLayout(Long.MAX_VALUE, ValueLayout.JAVA_BYTE));
      
      パラメータ:
      layout - ターゲット・レイアウト
      戻り値:
      このレイアウトと同じ特性を持つが、指定されたターゲット・レイアウトを持つアドレス・レイアウト
      例外:
      IllegalCallerException - 呼び出し元が、ネイティブ・アクセスが有効になっていないモジュール内にある場合
      関連項目:
    • withoutTargetLayout

      AddressLayout withoutTargetLayout()
      このアドレス・レイアウトと同じキャリア、整列制約、名前および順序で、ターゲット・レイアウトなしでアドレス・レイアウトを返します。
      APIのノート:
      これは、ターゲット・レイアウトが異なるが等しくない2つのアドレス・レイアウトを比較する場合に便利です。
      戻り値:
      このレイアウトと同じ特性を持つが、ターゲット・レイアウトがないアドレス・レイアウト
      関連項目:
    • targetLayout

      Optional<MemoryLayout> targetLayout()
      このアドレス・レイアウト (もしあれば)に関連付けられたターゲット・レイアウトを返します。
      戻り値:
      このアドレス・レイアウトに関連付けられたターゲット・レイアウト (もしあれば)