Интерфейс MemoryLayout.PathElement
- Вложенный интерфейс:
- MemoryLayout
public static sealed interface MemoryLayout.PathElement
GroupLayout. Элементы пути последовательности используются для выбора макета элемента последовательности в SequenceLayout; выбор макета элемента последовательности может быть явным (см. sequenceElement(long)) или неявным (см. sequenceElement()). Когда путь использует один или несколько неявных элементов пути последовательности, он приобретает дополнительные свободные измерения. Классы, не зависящие от платформы, не должны реализовывать MemoryLayout.PathElement напрямую.
Если не указано иное, передача аргумента null или аргумента массива, содержащего один или несколько элементов null в метод этого класса вызывает исключение NullPointerException.
- Требования к реализации:
- Реализации этого интерфейса являются неизменяемыми и потокобезопасными.
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static MemoryLayout.PathElement |
groupElement |
Возвращает элемент пути, который выбирает макет члена с заданным именем из заданного макета группы. |
static MemoryLayout.PathElement |
sequenceElement() |
Возвращает элемент пути, который выбирает макет неопределенного элемента из заданного макета последовательности. |
static MemoryLayout.PathElement |
sequenceElement |
Возвращает элемент пути, который выбирает макет элемента в заданной позиции в заданном макете последовательности. |
static MemoryLayout.PathElement |
sequenceElement |
Возвращает элемент пути, который выбирает макет элемента в диапазоне позиций в заданном макете последовательности, где диапазон выражается как пара начального индекса (включительно) S и коэффициента шага (который также может быть отрицательным) F. |
Подробное описание методов
groupElement
static MemoryLayout.PathElement groupElement(String name)
- Требования к реализации:
- в случае, если существует несколько элементов группы с совпадающим именем, элемент пути, возвращаемый этим методом, выберет первый; то есть, элемент группы с наименьшим смещением от текущего пути выбирается.
- Параметры:
-
name- имя выбираемого элемента группы. - Возвращает:
- элемент пути, который выбирает элемент группы с заданным именем.
sequenceElement
static MemoryLayout.PathElement sequenceElement(long index)
- Параметры:
-
index- индекс выбираемого элемента последовательности. - Возвращает:
- элемент пути, который выбирает макет элемента последовательности с заданным индексом.
- Исключения:
-
IllegalArgumentException- еслиindex < 0.
sequenceElement
static MemoryLayout.PathElement sequenceElement(long start, long step)
S и коэффициента шага (который также может быть отрицательным) F. Если путь со свободными измерениями n объединяется с элементом пути, возвращаемым этим методом, количество свободных измерений результирующего пути будет 1 + n. Если свободное измерение, связанное с этим путем, ограничено индексом I, результирующее смещение доступа можно получить по следующей формуле: гдеE * (S + I * F)
E - размер (в байтах) макета элемента последовательности.- Параметры:
-
start- индекс первого элемента последовательности, который необходимо выбрать. -
step- коэффициент шага, с которым будут выбираться последующие элементы последовательности. - Возвращает:
- элемент пути, который выбирает макет элемента последовательности с заданным индексом.
- Исключения:
-
IllegalArgumentException- еслиstart < 0, илиstep == 0.
sequenceElement
static MemoryLayout.PathElement sequenceElement()
n объединяется с элементом пути, возвращаемым этим методом, количество свободных измерений результирующего пути будет 1 + n.- Возвращает:
- элемент пути, который выбирает макет неопределенного элемента последовательности.
© 1993, 2021, 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/17/docs/api/jdk.incubator.foreign/jdk/incubator/foreign/MemoryLayout.PathElement.html