Интерфейс GroupLayout
- Все суперинтерфейсы:
MemoryLayout
- Все известные подинтерфейсы:
StructLayout, UnionLayout
public sealed interface GroupLayout extends MemoryLayout permits StructLayout, UnionLayout
Составной макет, представляющий собой объединение нескольких разнородных вложенных макетов. Вложенные макеты можно объединить двумя способами: если вложенные макеты располагаются один за другим, результирующий групповой макет является структурным макетом; если же все вложенные макеты располагаются с одинаковым начальным смещением, результирующий групповой макет является макетом объединения.
- Требования к реализации:
- Этот класс является неизменяемым, потокобезопасным и основанным на значениях.
- Граф иерархии запечатанных классов:
- Начиная с версии:
- 22
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в интерфейсе MemoryLayout
MemoryLayout.PathElement | Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static interface |
MemoryLayout.PathElement |
Элемент в пути макета. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
List |
memberLayouts() |
Возвращает вложенные макеты этого группового макета. |
GroupLayout |
withByteAlignment |
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но с заданным ограничением выравнивания (в байтах). |
GroupLayout |
withName |
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но с заданным именем. |
GroupLayout |
withoutName() |
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но без имени. |
Методы, объявленные в интерфейсе MemoryLayout
arrayElementVarHandle, byteAlignment, byteOffset, byteOffsetHandle, byteSize, equals, hashCode, name, scale, scaleHandle, select, sliceHandle, toString, varHandle | Модификатор и тип | Метод | Описание |
|---|---|---|
VarHandle |
arrayElementVarHandle |
Создает дескриптор переменной, который обращается к смежным элементам сегмента памяти по смещениям, выбранным заданным путем макета, причем доступные элементы имеют этот макет, а начальный макет в пути — это данный макет. |
long |
byteAlignment() |
Возвращает ограничение выравнивания, связанное с этим макетом, выраженное в байтах. |
long |
byteOffset |
Вычисляет смещение в байтах макета, выбранного заданным путем макета, где начальным макетом в пути является данный макет. |
MethodHandle |
byteOffsetHandle |
Создает дескриптор метода, вычисляющий смещение в байтах макета, выбранного заданным путем макета, где начальным макетом в пути является данный макет. |
long |
byteSize() |
Возвращает размер макета в байтах. |
boolean |
equals |
Сравнивает указанный объект с этим макетом на равенство. |
int |
hashCode() |
Возвращает значение хеш-кода этого макета. |
Optional |
name() |
Возвращает имя (если оно есть), связанное с этим макетом. |
long |
scale |
Возвращает offset + (byteSize() * index). |
MethodHandle |
scaleHandle() |
Возвращает дескриптор метода, который можно использовать для вызова MemoryLayout.scale(long, long) для этого макета. |
MemoryLayout |
select |
Возвращает макет, выбранный по указанному пути, где начальным макетом в пути является данный макет. |
MethodHandle |
sliceHandle |
Создает дескриптор метода, который принимает сегмент памяти и возвращает срез, соответствующий макету, выбранному заданным путем макета, где начальным макетом в пути является данный макет. |
String |
toString() |
Возвращает строковое представление этого макета. |
VarHandle |
varHandle |
Создает дескриптор переменной, который обращается к сегменту памяти по смещению, выбранному заданным путем макета, где начальным макетом в пути является данный макет. |
Подробное описание методов
memberLayouts
List<MemoryLayout> memberLayouts()
Возвращает вложенные макеты этого группового макета.
- Примечание к API:
- порядок возвращаемых вложенных макетов совпадает с порядком, в котором они были переданы одному из фабричных методов групповых макетов (см.
MemoryLayout.structLayout(MemoryLayout...)иMemoryLayout.unionLayout(MemoryLayout...)). - Возвращает:
- вложенные макеты этого группового макета
withName
GroupLayout withName(String name)
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но с заданным именем.
- Определено в:
-
withNameв интерфейсеMemoryLayout - Параметры:
-
name— имя макета - Возвращает:
- макет памяти с теми же характеристиками, что и у этого макета, но с заданным именем
- См. также:
withoutName
GroupLayout withoutName()
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но без имени.
- Определено в:
-
withoutNameв интерфейсеMemoryLayout - Возвращает:
- макет памяти с теми же характеристиками, что и у этого макета, но без имени
- См. также:
withByteAlignment
GroupLayout withByteAlignment(long byteAlignment)
Возвращает макет памяти с теми же характеристиками, что и у этого макета, но с заданным ограничением выравнивания (в байтах).
- Определено в:
-
withByteAlignmentв интерфейсеMemoryLayout - Параметры:
-
byteAlignment— ограничение выравнивания макета, выраженное в байтах - Возвращает:
- макет памяти с теми же характеристиками, что и у этого макета, но с заданным ограничением выравнивания (в байтах)
- Исключения:
-
IllegalArgumentException— еслиbyteAlignmentне является степенью двойки -
IllegalArgumentException— еслиbyteAlignmentменьшеM, гдеM— максимальное ограничение выравнивания среди любых вложенных макетов, связанных с этим групповым макетом
© 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.