Интерфейс FunctionDescriptor
public sealed interface FunctionDescriptor
FunctionDescriptor — это API-предпросмотр платформы Java. Функции предварительного просмотра могут быть удалены в будущих выпусках или обновлены до постоянных функций платформы Java.
Описание функции моделирует сигнатуру внешней функции. Описание функции состоит из нуля или более макетов аргументов и нуля или одного макета возврата. Описание функции используется для создания обработчиков вызова по вызовуПРЕДПРОСМОТР и заглушек вызова по обращениюПРЕДПРОСМОТР.
- Требования к реализации:
- Реализующие классы неизменяемы, потокобезопасны и базирующиеся на значениях.
- С версии:
- 19
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
FunctionDescriptorPREVIEW |
appendArgumentLayouts |
Возвращает описание функции с заданными макетами аргументов, добавленными к макетам аргументов этого описания функции. |
List |
argumentLayouts() |
Возвращает макеты аргументов этого описания функции (как список, не допускающий изменения). |
FunctionDescriptorPREVIEW |
changeReturnLayout |
Возвращает описание функции с предоставленным макетом возврата. |
FunctionDescriptorPREVIEW |
dropReturnLayout() |
Возвращает новое описание функции без макета возврата. |
FunctionDescriptorPREVIEW |
insertArgumentLayouts |
Возвращает описание функции с заданными макетами аргументов, вставленными в заданный индекс в массив макетов аргументов этого описания функции. |
static FunctionDescriptorPREVIEW |
of |
Создаёт описание функции с заданными макетами возврата и аргументов. |
static FunctionDescriptorPREVIEW |
ofVoid |
Создаёт описание функции с заданными макетами аргументов и без макета возврата. |
Optional |
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
FunctionDescriptorтолько при включённых функциях предварительного просмотра.