Package Summary Overview Summary

Module java.base
Package java.lang.foreign

# Class ValueLayout.OfAddress

java.lang.Object
java.lang.foreign.ValueLayoutPREVIEW
java.lang.foreign.ValueLayout.OfAddress

All Implemented Interfaces:
  `MemoryLayoutPREVIEW`

Enclosing class:
  `ValueLayoutPREVIEW`

public static final class ValueLayout.OfAddress extends ValueLayoutPREVIEW
`OfAddress` is a preview API of the Java platform.
Programs can only use `OfAddress` when preview features are enabled.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
A value layout whose carrier is `MemoryAddress.class`.

Since:
  19

- ## Nested Class Summary

  ## Nested classes/interfaces declared in class java.lang.foreign.ValueLayoutPREVIEW

  `ValueLayout.OfAddressPREVIEW, ValueLayout.OfBooleanPREVIEW, ValueLayout.OfBytePREVIEW, ValueLayout.OfCharPREVIEW, ValueLayout.OfDoublePREVIEW, ValueLayout.OfFloatPREVIEW, ValueLayout.OfIntPREVIEW, ValueLayout.OfLongPREVIEW, ValueLayout.OfShortPREVIEW`

  ## Nested classes/interfaces declared in interface java.lang.foreign.MemoryLayoutPREVIEW

  `MemoryLayout.PathElementPREVIEW`

- ## Field Summary

  ### Fields declared in class java.lang.foreign.ValueLayoutPREVIEW

  `ADDRESS, JAVA_BOOLEAN, JAVA_BYTE, JAVA_CHAR, JAVA_DOUBLE, JAVA_FLOAT, JAVA_INT, JAVA_LONG, JAVA_SHORT`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final long`
  `bitAlignment()`
  Returns the alignment constraint associated with this layout, expressed in bits.
  `long`
  `bitSize()`
  Returns the layout size, in bits.
  `long`
  `byteSize()`
  Returns the layout size, in bytes.
  `boolean`
  `isPadding()`
  Returns true, if this layout is a padding layout.
  `final Optional<String>`
  `name()`
  Returns the name (if any) associated with this layout.
  `ValueLayout.OfAddressPREVIEW`
  `withBitAlignment (long alignmentBits)`
  Returns a memory layout with the same size and name as this layout, but with the specified alignment constraints (in bits).
  `ValueLayout.OfAddressPREVIEW`
  `withName (String name)`
  Returns a memory layout with the same size and alignment constraints as this layout, but with the specified name.
  `ValueLayout.OfAddressPREVIEW`
  `withOrder (ByteOrder order)`
  Returns a value layout with the same carrier, alignment constraints and name as this value layout, but with the specified byte order.

  ### Methods declared in class java.lang.foreign.ValueLayoutPREVIEW

  `arrayElementVarHandle, carrier, equals, hashCode, order, toString`

  ### Methods declared in class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods declared in interface java.lang.foreign.MemoryLayoutPREVIEW

  `bitAlignment, bitOffset, bitOffsetHandle, bitSize, byteAlignment, byteOffset, byteOffsetHandle, byteSize, isPadding, name, select, sliceHandle, varHandle`

- ## Method Details

  - ### withName

    public ValueLayout.OfAddressPREVIEW withName (String name)
    Description copied from interface: `MemoryLayout`
    Returns a memory layout with the same size and alignment constraints as this layout, but with the specified name.
    Specified by:
      `withName` in interface `MemoryLayoutPREVIEW`
    Parameters:
      `name` - the layout name.
    Returns:
      a memory layout with the given name.
    See Also:
      - `MemoryLayout.name()`PREVIEW

  - ### withBitAlignment

    public ValueLayout.OfAddressPREVIEW withBitAlignment (long alignmentBits)
    Description copied from interface: `MemoryLayout`
    Returns a memory layout with the same size and name as this layout, but with the specified alignment constraints (in bits).
    Specified by:
      `withBitAlignment` in interface `MemoryLayoutPREVIEW`
    Parameters:
      `alignmentBits` - the layout alignment constraint, expressed in bits.
    Returns:
      a memory layout with the given alignment constraints.

  - ### withOrder

    public ValueLayout.OfAddressPREVIEW withOrder (ByteOrder order)
    Description copied from class: `ValueLayout`
    Returns a value layout with the same carrier, alignment constraints and name as this value layout, but with the specified byte order.
    Overrides:
      `withOrder` in class `ValueLayoutPREVIEW`
    Parameters:
      `order` - the desired byte order.
    Returns:
      a value layout with the given byte order.

  - ### name

    public final Optional<String> name()
    Description copied from interface: `MemoryLayout`
    Returns the name (if any) associated with this layout.
    Specified by:
      `name` in interface `MemoryLayoutPREVIEW`
    Returns:
      the name (if any) associated with this layout
    See Also:
      - `MemoryLayout.withName(String)`PREVIEW

  - ### bitAlignment

    public final long bitAlignment()
    Description copied from interface: `MemoryLayout`
    Returns the alignment constraint associated with this layout, expressed in bits. Layout alignment defines a power of two `A` which is the bit-wise alignment of the layout. If `A <= 8` then `A/8` is the number of bytes that must be aligned for any pointer that correctly points to this layout. Thus:
    - `A=8` means unaligned (in the usual sense), which is common in packets.
    - `A=64` means word aligned (on LP64), `A=32` int aligned, `A=16` short aligned, etc.
    - `A=512` is the most strict alignment required by the x86/SV ABI (for AVX-512 data).
    If no explicit alignment constraint was set on this layout (see `MemoryLayout.withBitAlignment(long)`PREVIEW), then this method returns the natural alignment constraint (in bits) associated with this layout.
    Specified by:
      `bitAlignment` in interface `MemoryLayoutPREVIEW`
    Returns:
      the layout alignment constraint, in bits.

  - ### byteSize

    public long byteSize()
    Description copied from interface: `MemoryLayout`
    Returns the layout size, in bytes.
    Specified by:
      `byteSize` in interface `MemoryLayoutPREVIEW`
    Returns:
      the layout size, in bytes

  - ### bitSize

    public long bitSize()
    Description copied from interface: `MemoryLayout`
    Returns the layout size, in bits.
    Specified by:
      `bitSize` in interface `MemoryLayoutPREVIEW`
    Returns:
      the layout size, in bits

  - ### isPadding

    public boolean isPadding()
    Description copied from interface: `MemoryLayout`
    Returns true, if this layout is a padding layout.
    Specified by:
      `isPadding` in interface `MemoryLayoutPREVIEW`
    Returns:
      true, if this layout is a padding layout