Spec-Zone.ru › OpenJDK 27

Интерфейс GroupLayout

Все суперинтерфейсы:
MemoryLayout
Все известные подинтерфейсы:
StructLayout, UnionLayout
public sealed interface GroupLayout extends MemoryLayout permits StructLayout, UnionLayout
Составной макет, представляющий собой объединение нескольких разнородных вложенных макетов. Вложенные макеты можно объединить двумя способами: если вложенные макеты располагаются один за другим, результирующий групповой макет является структурным макетом; если же все вложенные макеты располагаются с одинаковым начальным смещением, результирующий групповой макет является макетом объединения.
Требования к реализации:
Этот класс является неизменяемым, потокобезопасным и основанным на значениях.
Граф иерархии запечатанных классов:
Sealed class hierarchy graph for GroupLayoutSealed class hierarchy graph for GroupLayout
Начиная с версии:
22

Краткое описание вложенных классов

Вложенные классы и интерфейсы, объявленные в интерфейсе MemoryLayout

MemoryLayout.PathElement
Модификатор и тип Интерфейс Описание
static interface  MemoryLayout.PathElement
Элемент в пути макета.

Краткое описание методов

Модификатор и тип Метод Описание
List<MemoryLayout> memberLayouts()
Возвращает вложенные макеты этого группового макета.
GroupLayout withByteAlignment(long byteAlignment)
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но с заданным ограничением выравнивания (в байтах).
GroupLayout withName(String name)
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но с заданным именем.
GroupLayout withoutName()
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но без имени.

Методы, объявленные в интерфейсе MemoryLayout

arrayElementVarHandle, byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, scale, scaleHandle, select, sliceHandle, toString, varHandle
Модификатор и тип Метод Описание
VarHandle arrayElementVarHandle(MemoryLayout.PathElement... elements)
Создает дескриптор переменной, который обращается к смежным элементам сегмента памяти по смещениям, выбранным заданным путем макета, причем доступные элементы имеют этот макет, а начальный макет в пути — это данный макет.
long byteAlignment()
Возвращает ограничение выравнивания, связанное с этим макетом, выраженное в байтах.
long byteOffset(MemoryLayout.PathElement... elements)
Вычисляет смещение в байтах макета, выбранного заданным путем макета, где начальным макетом в пути является данный макет.
MethodHandle byteOffsetHandle(MemoryLayout.PathElement... elements)
Создает дескриптор метода, вычисляющий смещение в байтах макета, выбранного заданным путем макета, где начальным макетом в пути является данный макет.
long byteSize()
Возвращает размер макета в байтах.
boolean equals(Object other)
Сравнивает указанный объект с этим макетом на равенство.
int hashCode()
Возвращает значение хеш-кода этого макета.
Optional<String> name()
Возвращает имя (если оно есть), связанное с этим макетом.
long scale(long offset, long index)
Возвращает offset + (byteSize() * index).
MethodHandle scaleHandle()
Возвращает дескриптор метода, который можно использовать для вызова MemoryLayout.scale(long, long) для этого макета.
MemoryLayout select(MemoryLayout.PathElement... elements)
Возвращает макет, выбранный по указанному пути, где начальным макетом в пути является данный макет.
MethodHandle sliceHandle(MemoryLayout.PathElement... elements)
Создает дескриптор метода, который принимает сегмент памяти и возвращает срез, соответствующий макету, выбранному заданным путем макета, где начальным макетом в пути является данный макет.
String toString()
Возвращает строковое представление этого макета.
VarHandle varHandle(MemoryLayout.PathElement... elements)
Создает дескриптор переменной, который обращается к сегменту памяти по смещению, выбранному заданным путем макета, где начальным макетом в пути является данный макет.

Подробное описание методов

memberLayouts

List<MemoryLayout> memberLayouts()
Возвращает вложенные макеты этого группового макета.
Примечание к API:
порядок возвращаемых вложенных макетов совпадает с порядком, в котором они были переданы одному из фабричных методов групповых макетов (см. MemoryLayout.structLayout(MemoryLayout...) и MemoryLayout.unionLayout(MemoryLayout...)).
Возвращает:
вложенные макеты этого группового макета

withName

GroupLayout withName(String name)
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но с заданным именем.
Определено в:
withName в интерфейсе MemoryLayout
Параметры:
name — имя макета
Возвращает:
макет памяти с теми же характеристиками, что и у этого макета, но с заданным именем
См. также:
  • MemoryLayout.name()

withoutName

GroupLayout withoutName()
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но без имени.
Определено в:
withoutName в интерфейсе MemoryLayout
Возвращает:
макет памяти с теми же характеристиками, что и у этого макета, но без имени
См. также:
  • MemoryLayout.name()

withByteAlignment

GroupLayout withByteAlignment(long byteAlignment)
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но с заданным ограничением выравнивания (в байтах).
Определено в:
withByteAlignment в интерфейсе MemoryLayout
Параметры:
byteAlignment — ограничение выравнивания макета, выраженное в байтах
Возвращает:
макет памяти с теми же характеристиками, что и у этого макета, но с заданным ограничением выравнивания (в байтах)
Исключения:
IllegalArgumentException — если byteAlignment не является степенью двойки
IllegalArgumentException — если byteAlignment меньше M, где M — максимальное ограничение выравнивания среди любых вложенных макетов, связанных с этим групповым макетом

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API