Spec-Zone.ru › OpenJDK 25

Интерфейс MemoryLayout.PathElement

Охватывающий интерфейс:
MemoryLayout
public static sealed interface MemoryLayout.PathElement
Элемент в пути компоновки. Существует три вида элементов пути:
  • элементы пути группы, используемые для выбора компоновки элемента в GroupLayout по имени или индексу;
  • элементы пути последовательности, используемые для выбора одной или нескольких компоновок элементов последовательности в SequenceLayout; и
  • элементы пути разыменования, используемые для разыменования компоновки адреса до его целевой компоновки.
Элементы пути последовательности, выбирающие несколько компоновок элементов последовательности, называются открытыми элементами пути. Размер открытого элемента пути определяет количество компоновок элементов, которые можно выбрать с его помощью.
Требования к реализации:
Реализации этого интерфейса являются неизменяемыми, потокобезопасными и основанными на значениях.
С версии:
22

Краткое описание методов

Модификатор и тип Метод Описание
static MemoryLayout.PathElement dereferenceElement()
Возвращает элемент пути, выбирающий целевую компоновку компоновки адреса (если она задана).
static MemoryLayout.PathElement groupElement(long index)
Возвращает элемент пути, выбирающий компоновку элемента с заданным индексом в компоновке группы.
static MemoryLayout.PathElement groupElement(String name)
Возвращает элемент пути, выбирающий компоновку элемента с заданным именем в компоновке группы.
static MemoryLayout.PathElement sequenceElement()
Возвращает открытый элемент пути, выбирающий неопределённую компоновку элемента в компоновке последовательности.
static MemoryLayout.PathElement sequenceElement(long index)
Возвращает элемент пути, выбирающий компоновку элемента с указанным индексом в компоновке последовательности.
static MemoryLayout.PathElement sequenceElement(long start, long step)
Возвращает открытый элемент пути, выбирающий компоновку элемента в диапазоне позиций в компоновке последовательности.

Подробное описание методов

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()
Возвращает элемент пути, выбирающий целевую компоновку компоновки адреса (если она задана).
Возвращает:
элемент пути, выбирающий целевую компоновку компоновки адреса (если она задана)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, в том числе концептуальные обзоры, определения терминов, способы обхода ограничений и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API