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