# Interface ValueLayout.OfChar

All Superinterfaces:
  `MemoryLayout`, `ValueLayout`

Enclosing interface:
  `ValueLayout`

public static sealed interface ValueLayout.OfChar extends ValueLayout
A value layout whose carrier is `char.class`.

Since:
  22
See Also:
  - `ValueLayout.JAVA_CHAR`
  - `ValueLayout.JAVA_CHAR_UNALIGNED`

- ## Nested Class Summary

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

  `MemoryLayout.PathElement`

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

  `ValueLayout.OfBoolean, ValueLayout.OfByte, ValueLayout.OfChar, ValueLayout.OfDouble, ValueLayout.OfFloat, ValueLayout.OfInt, ValueLayout.OfLong, ValueLayout.OfShort`

- ## Field Summary

  ### Fields declared in interface java.lang.foreign.ValueLayout

  `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`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ValueLayout.OfChar`
  `withByteAlignment(long byteAlignment)`
  Returns a memory layout with the same characteristics as this layout, but with the given alignment constraint (in bytes).
  `ValueLayout.OfChar`
  `withName(String name)`
  Returns a memory layout with the same characteristics as this layout, but with the given name.
  `ValueLayout.OfChar`
  `withOrder(ByteOrder order)`
  Returns a value layout with the same characteristics as this layout, but with the given byte order.
  `ValueLayout.OfChar`
  `withoutName()`
  Returns a memory layout with the same characteristics as this layout, but with no name.

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

  `arrayElementVarHandle, byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, scale, scaleHandle, select, sliceHandle, toString, varHandle`

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

  `carrier, order, varHandle`

- ## Method Details

  - ### withName

    ValueLayout.OfChar withName(String name)
    Returns a memory layout with the same characteristics as this layout, but with the given name.
    Specified by:
      `withName` in interface `MemoryLayout`
    Specified by:
      `withName` in interface `ValueLayout`
    Parameters:
      `name` - the layout name
    Returns:
      a memory layout with the same characteristics as this layout, but with the given name
    See Also:
      - `MemoryLayout.name()`

  - ### withoutName

    ValueLayout.OfChar withoutName()
    Returns a memory layout with the same characteristics as this layout, but with no name.
    Specified by:
      `withoutName` in interface `MemoryLayout`
    Specified by:
      `withoutName` in interface `ValueLayout`
    Returns:
      a memory layout with the same characteristics as this layout, but with no name
    See Also:
      - `MemoryLayout.name()`

  - ### withByteAlignment

    ValueLayout.OfChar withByteAlignment(long byteAlignment)
    Returns a memory layout with the same characteristics as this layout, but with the given alignment constraint (in bytes).
    Specified by:
      `withByteAlignment` in interface `MemoryLayout`
    Specified by:
      `withByteAlignment` in interface `ValueLayout`
    Parameters:
      `byteAlignment` - the layout alignment constraint, expressed in bytes
    Returns:
      a memory layout with the same characteristics as this layout, but with the given alignment constraint (in bytes)
    Throws:
      `IllegalArgumentException` - if `byteAlignment` is not a power of two

  - ### withOrder

    ValueLayout.OfChar withOrder(ByteOrder order)
    Returns a value layout with the same characteristics as this layout, but with the given byte order.
    Specified by:
      `withOrder` in interface `ValueLayout`
    Parameters:
      `order` - the desired byte order
    Returns:
      a value layout with the same characteristics as this layout, but with the given byte order