Contents
Hide sidebar Show sidebar
Interface GroupLayout
A compound layout that is an aggregation of multiple, heterogeneous
member layouts. There are two ways in which member layouts can be combined:
if member layouts are laid out one after the other, the resulting group layout is a
struct layout; conversely, if all member layouts are laid
out at the same starting offset, the resulting group layout is a
union layout.
Implementation Requirements:
This class is immutable, thread-safe and
value-based.
Sealed Class Hierarchy Graph:
Since:
22
-
Nested Class Summary
Nested classes/interfaces declared in interface MemoryLayout
MemoryLayout.PathElement -
Method Summary
All MethodsInstance MethodsAbstract MethodsModifier and TypeMethodDescriptionReturns the member layouts of this group layout.withByteAlignment(long byteAlignment)Returns a memory layout with the same characteristics as this layout, but with the given alignment constraint (in bytes).Returns a memory layout with the same characteristics as this layout, but with the given name.Returns a memory layout with the same characteristics as this layout, but with no name.Methods declared in interface MemoryLayout
arrayElementVarHandle, byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, scale, scaleHandle, select, sliceHandle, toString, varHandleModifier and TypeMethodDescriptionarrayElementVarHandle(MemoryLayout.PathElement... elements)Creates a var handle that accesses adjacent elements in a memory segment at offsets selected by the given layout path, where the accessed elements have this layout, and where the initial layout in the path is this layout.longReturns the alignment constraint associated with this layout, expressed in bytes.longbyteOffset(MemoryLayout.PathElement... elements)Computes the offset, in bytes, of the layout selected by the given layout path, where the initial layout in the path is this layout.byteOffsetHandle(MemoryLayout.PathElement... elements)Creates a method handle that computes the offset, in bytes, of the layout selected by the given layout path, where the initial layout in the path is this layout.longbyteSize()Returns the layout size, in bytes.booleanCompares the specified object with this layout for equality.inthashCode()Returns the hash code value for this layout.name()Returns the name (if any) associated with this layout.longscale(long offset, long index)Returns offset + (byteSize() * index).Returns a method handle that can be used to invoke MemoryLayout.scale(long, long) on this layout.select(MemoryLayout.PathElement... elements)Returns the layout selected from the provided path, where the initial layout in the path is this layout.sliceHandle(MemoryLayout.PathElement... elements)Creates a method handle which, given a memory segment, returns a slice corresponding to the layout selected by the given layout path, where the initial layout in the path is this layout.toString()Returns the string representation of this layout.varHandle(MemoryLayout.PathElement... elements)Creates a var handle that accesses a memory segment at the offset selected by the given layout path, where the initial layout in the path is this layout.
-
Method Details
-
memberLayouts
List<MemoryLayout> memberLayouts()Returns the member layouts of this group layout.API Note: the order in which member layouts are returned is the same order in which member layouts have been passed to one of the group layout factory methods (see MemoryLayout.structLayout(MemoryLayout...) and MemoryLayout.unionLayout(MemoryLayout...)). Returns: the member layouts of this group layout -
withName
Returns a memory layout with the same characteristics as this layout, but with the given name.Specified by: withName in interface MemoryLayout Parameters: name - the layout name Returns: a memory layout with the same characteristics as this layout, but with the given name See Also: -
withoutName
GroupLayout withoutName()Returns a memory layout with the same characteristics as this layout, but with no name.Specified by: withoutName in interface MemoryLayout Returns: a memory layout with the same characteristics as this layout, but with no name See Also: -
withByteAlignment
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 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 IllegalArgumentException - if byteAlignment is less than M, where M is the maximum alignment constraint in any of the member layouts associated with this group layout
-
Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples. Other versions.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2026, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.