Интерфейс UnionLayout
- Все суперинтерфейсы:
GroupLayout, MemoryLayout
public sealed interface UnionLayout extends GroupLayout
Групповой макет, макеты-члены которого размещаются с одинаковым начальным смещением.
- Требования к реализации:
- Реализующие классы являются неизменяемыми, потокобезопасными и основанными на значениях.
- Начиная с версии:
- 22
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе MemoryLayout
MemoryLayout.PathElement | Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static interface |
MemoryLayout.PathElement |
Элемент в пути макета. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
UnionLayout |
withByteAlignment |
Возвращает макет памяти с теми же характеристиками, что и у данного макета, но с указанным ограничением выравнивания (в байтах). |
UnionLayout |
withName |
Возвращает макет памяти с теми же характеристиками, что и у данного макета, но с указанным именем. |
UnionLayout |
withoutName() |
Возвращает макет памяти с теми же характеристиками, что и у данного макета, но без имени. |
Методы, объявленные в интерфейсе GroupLayout
memberLayouts | Модификатор и тип | Метод | Описание |
|---|---|---|
List |
memberLayouts() |
Возвращает макеты-члены данного группового макета. |
Методы, объявленные в интерфейсе 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 |
Создает дескриптор переменной, который обращается к сегменту памяти по смещению, выбранному указанным путем макета, начальным макетом которого является данный макет. |
Подробное описание методов
withName
UnionLayout withName(String name)
Возвращает макет памяти с теми же характеристиками, что и у данного макета, но с указанным именем.
- Переопределяет:
-
withNameв интерфейсеGroupLayout - Переопределяет:
-
withNameв интерфейсеMemoryLayout - Параметры:
-
name— имя макета - Возвращает:
- макет памяти с теми же характеристиками, что и у данного макета, но с указанным именем
- См. также:
withoutName
UnionLayout withoutName()
Возвращает макет памяти с теми же характеристиками, что и у данного макета, но без имени.
- Переопределяет:
-
withoutNameв интерфейсеGroupLayout - Переопределяет:
-
withoutNameв интерфейсеMemoryLayout - Возвращает:
- макет памяти с теми же характеристиками, что и у данного макета, но без имени
- См. также:
withByteAlignment
UnionLayout withByteAlignment(long byteAlignment)
Возвращает макет памяти с теми же характеристиками, что и у данного макета, но с указанным ограничением выравнивания (в байтах).
- Переопределяет:
-
withByteAlignmentв интерфейсеGroupLayout - Переопределяет:
-
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.