Интерфейс MemoryLayout.PathElement
- Охватывающий интерфейс:
MemoryLayout
public static sealed interface MemoryLayout.PathElement
-
элементы пути группы, используемые для выбора компоновки элемента в
GroupLayoutпо имени или индексу; -
элементы пути последовательности, используемые для выбора одной или нескольких компоновок элементов последовательности в
SequenceLayout; и - элементы пути разыменования, используемые для разыменования компоновки адреса до его целевой компоновки.
- Требования к реализации:
- Реализации этого интерфейса являются неизменяемыми, потокобезопасными и основанными на значениях.
- С версии:
- 22
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static MemoryLayout.PathElement |
dereferenceElement() |
Возвращает элемент пути, выбирающий целевую компоновку компоновки адреса (если она задана). |
static MemoryLayout.PathElement |
groupElement |
Возвращает элемент пути, выбирающий компоновку элемента с заданным индексом в компоновке группы. |
static MemoryLayout.PathElement |
groupElement |
Возвращает элемент пути, выбирающий компоновку элемента с заданным именем в компоновке группы. |
static MemoryLayout.PathElement |
sequenceElement() |
Возвращает открытый элемент пути, выбирающий неопределённую компоновку элемента в компоновке последовательности. |
static MemoryLayout.PathElement |
sequenceElement |
Возвращает элемент пути, выбирающий компоновку элемента с указанным индексом в компоновке последовательности. |
static MemoryLayout.PathElement |
sequenceElement |
Возвращает открытый элемент пути, выбирающий компоновку элемента в диапазоне позиций в компоновке последовательности. |
Подробное описание методов
groupElement
static MemoryLayout.PathElement groupElement(String name)
- Требования к реализации:
- если существует несколько элементов группы с совпадающим именем, элемент пути, возвращаемый этим методом, выберет первый из них; то есть будет выбран элемент группы с наименьшим смещением относительно текущего пути. В таких случаях может быть предпочтительнее использовать
groupElement(long). - Параметры:
-
name— имя выбираемой компоновки элемента - Возвращает:
- элемент пути, выбирающий компоновку элемента с заданным именем в компоновке группы
groupElement
static MemoryLayout.PathElement groupElement(long index)
- Параметры:
-
index— индекс выбираемого элемента компоновки - Возвращает:
- элемент пути, выбирающий компоновку элемента с заданным индексом в компоновке группы
- Выбрасывает:
-
IllegalArgumentException— еслиindex < 0
sequenceElement
static MemoryLayout.PathElement sequenceElement(long index)
- Параметры:
-
index— индекс выбираемого элемента последовательности - Возвращает:
- элемент пути, выбирающий компоновку элемента с указанным индексом в компоновке последовательности
- Выбрасывает:
-
IllegalArgumentException— еслиindex < 0
sequenceElement
static MemoryLayout.PathElement sequenceElement(long start, long step)
S и шаг (который может быть отрицательным) F. Точный элемент последовательности, выбираемый этой компоновкой, задаётся индексом I. Если C — количество элементов последовательности, то 0 <= I < B, где B вычисляется следующим образом:
- если
F > 0, тоB = ceilDiv(C - S, F) - если
F < 0, тоB = ceilDiv(S + 1, -F)
B.- Параметры:
-
start— индекс первого выбираемого элемента последовательности -
step— шаг, с которым выбираются элементы подпоследовательности - Возвращает:
- элемент пути, выбирающий компоновку элемента последовательности с заданным индексом.
- Выбрасывает:
-
IllegalArgumentException— еслиstart < 0илиstep == 0
sequenceElement
static MemoryLayout.PathElement sequenceElement()
Точный элемент последовательности, выбираемый этой компоновкой, задаётся индексом I. Если C — количество элементов последовательности, то 0 <= I < C. Иными словами, C — размер возвращаемого открытого элемента пути.
- Возвращает:
- открытый элемент пути, выбирающий неопределённую компоновку элемента в компоновке последовательности
dereferenceElement
static MemoryLayout.PathElement dereferenceElement()
- Возвращает:
- элемент пути, выбирающий целевую компоновку компоновки адреса (если она задана)
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/foreign/MemoryLayout.PathElement.html