Spec-Zone.ru › OpenJDK 27

Интерфейс StructLayout

Все суперинтерфейсы:
GroupLayout, MemoryLayout
public sealed interface StructLayout extends GroupLayout
Групповой макет, макеты элементов которого расположены один за другим.
Требования к реализации:
Реализующие классы неизменяемы, потокобезопасны и основаны на значениях.
Начиная с версии:
22

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

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

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

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

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

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

memberLayouts
Модификатор и тип Метод Описание
List<MemoryLayout> memberLayouts()
Возвращает макеты элементов этого группового макета.

Методы, объявленные в интерфейсе 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)
Создает дескриптор переменной, который обращается к сегменту памяти по смещению, выбранному заданным путем макета, где начальный макет в пути — это данный макет.

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

withName

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

withoutName

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

withByteAlignment

StructLayout withByteAlignment(long byteAlignment)
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но с заданным ограничением выравнивания (в байтах).
Определено в:
withByteAlignment в интерфейсе GroupLayout
Определено в:
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