Spec-Zone.ru › OpenJDK 21

Интерфейс FunctionDescriptor

public sealed interface FunctionDescriptor
FunctionDescriptor — это API-предпросмотр платформы Java.
Программы могут использовать FunctionDescriptor только при включённых функциях предварительного просмотра.
Функции предварительного просмотра могут быть удалены в будущих выпусках или обновлены до постоянных функций платформы Java.
Описание функции моделирует сигнатуру внешней функции. Описание функции состоит из нуля или более макетов аргументов и нуля или одного макета возврата. Описание функции используется для создания обработчиков вызова по вызовуПРЕДПРОСМОТР и заглушек вызова по обращениюПРЕДПРОСМОТР.
Требования к реализации:
Реализующие классы неизменяемы, потокобезопасны и базирующиеся на значениях.
С версии:
19
См. также:
  • MemoryLayoutПРЕДПРОСМОТР

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

Модификатор и тип Метод Описание
FunctionDescriptorPREVIEW appendArgumentLayouts(MemoryLayoutPREVIEW... addedLayouts)
Возвращает описание функции с заданными макетами аргументов, добавленными к макетам аргументов этого описания функции.
List<MemoryLayoutPREVIEW> argumentLayouts()
Возвращает макеты аргументов этого описания функции (как список, не допускающий изменения).
FunctionDescriptorPREVIEW changeReturnLayout(MemoryLayoutPREVIEW newReturn)
Возвращает описание функции с предоставленным макетом возврата.
FunctionDescriptorPREVIEW dropReturnLayout()
Возвращает новое описание функции без макета возврата.
FunctionDescriptorPREVIEW insertArgumentLayouts(int index, MemoryLayoutPREVIEW... addedLayouts)
Возвращает описание функции с заданными макетами аргументов, вставленными в заданный индекс в массив макетов аргументов этого описания функции.
static FunctionDescriptorPREVIEW of(MemoryLayoutPREVIEW resLayout, MemoryLayoutPREVIEW... argLayouts)
Создаёт описание функции с заданными макетами возврата и аргументов.
static FunctionDescriptorPREVIEW ofVoid(MemoryLayoutPREVIEW... argLayouts)
Создаёт описание функции с заданными макетами аргументов и без макета возврата.
Optional<MemoryLayoutPREVIEW> returnLayout()
Возвращает макет возврата (если есть) этого описания функции.
MethodType toMethodType()
Возвращает тип метода, состоящий из типов носителей макетов в этом описании функции.

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

returnLayout

Optional<MemoryLayoutPREVIEW> returnLayout()
Возвращает макет возврата (если есть) этого описания функции.
Возвращает:
макет возврата (если есть) этого описания функции

argumentLayouts

List<MemoryLayoutPREVIEW> argumentLayouts()
Возвращает макеты аргументов этого описания функции (как список, не допускающий изменения)..
Возвращает:
макеты аргументов этого описания функции (как список, не допускающий изменения)

appendArgumentLayouts

FunctionDescriptorPREVIEW appendArgumentLayouts(MemoryLayoutPREVIEW... addedLayouts)
Возвращает описание функции с заданными макетами аргументов, добавленными к макетам аргументов этого описания функции.
Параметры:
addedLayouts - макеты аргументов для добавления.
Возвращает:
новое описание функции с предоставленными дополнительными макетами аргументов.
Исключения:
IllegalArgumentException - если один из макетов в addedLayouts является макетом заполнения.

insertArgumentLayouts

FunctionDescriptorPREVIEW insertArgumentLayouts(int index, MemoryLayoutPREVIEW... addedLayouts)
Возвращает описание функции с заданными макетами аргументов, вставленными в заданный индекс в массив макетов аргументов этого описания функции.
Параметры:
index - индекс, в который вставить аргументы
addedLayouts - макеты аргументов для вставки в заданный индекс.
Возвращает:
новое описание функции с предоставленными дополнительными макетами аргументов.
Исключения:
IllegalArgumentException - если один из макетов в addedLayouts является макетом заполнения.
IllegalArgumentException - если index < 0 || index > argumentLayouts().size().

changeReturnLayout

FunctionDescriptorPREVIEW changeReturnLayout(MemoryLayoutPREVIEW newReturn)
Возвращает описание функции с предоставленным макетом возврата.
Параметры:
newReturn - новый макет возврата.
Возвращает:
новое описание функции с предоставленным макетом возврата.
Исключения:
IllegalArgumentException - если newReturn является макетом заполнения.

dropReturnLayout

FunctionDescriptorPREVIEW dropReturnLayout()
Возвращает новое описание функции без макета возврата.
Возвращает:
новое описание функции без макета возврата

toMethodType

MethodType toMethodType()
Возвращает тип метода, состоящий из типов носителей макетов в этом описании функции.

Тип носителя макета L определяется следующим образом:

  • Если L является ValueLayoutПРЕДПРОСМОТР, тип носителя определяется с помощью ValueLayout.carrier()ПРЕДПРОСМОТР.
  • Если L является GroupLayoutПРЕДПРОСМОТР или SequenceLayoutПРЕДПРОСМОТР, тип носителя — MemorySegmentПРЕДПРОСМОТР.
Примечание API:
Описание функции, по определению, не может содержать макетов заполнения. Поэтому не нужно указывать, как макеты заполнения должны отображаться в типах носителей.
Возвращает:
тип метода, состоящий из типов носителей макетов в этом описании функции.

of

static FunctionDescriptorPREVIEW of(MemoryLayoutPREVIEW resLayout, MemoryLayoutPREVIEW... argLayouts)
Создаёт описание функции с заданными макетами возврата и аргументов.
Параметры:
resLayout - макет возврата.
argLayouts - макеты аргументов.
Возвращает:
новое описание функции с предоставленными макетами возврата и аргументов.
Исключения:
IllegalArgumentException - если resLayout является макетом заполнения.
IllegalArgumentException - если один из макетов в argLayouts является макетом заполнения.

ofVoid

static FunctionDescriptorPREVIEW ofVoid(MemoryLayoutPREVIEW... argLayouts)
Создаёт описание функции с заданными макетами аргументов и без макета возврата. Это полезно для моделирования функций, не возвращающих значений.
Параметры:
argLayouts - макеты аргументов.
Возвращает:
новое описание функции с предоставленными макетами аргументов.
Исключения:
IllegalArgumentException - если один из макетов в argLayouts является макетом заполнения.

© 1993, 2023, 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/21/docs/api/java.base/java/lang/foreign/FunctionDescriptor.html

Spec-Zone.ru

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