Spec-Zone.ru › OpenJDK 25

Интерфейс FunctionDescriptor

public sealed interface FunctionDescriptor
Дескриптор функции моделирует сигнатуру внешней функции. Дескриптор функции состоит из нуля или более компоновок аргументов и нуля или одной компоновки возвращаемого значения. Дескриптор функции используется для создания дескрипторов методов для вызова внешних функцийОГРАНИЧЕНО и заглушек обратного вызоваОГРАНИЧЕНО.
Требования к реализации:
Реализующие классы являются неизменяемыми, потокобезопасными и основанными на значениях.
С версии:
22
См. также:
  • MemoryLayout

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

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

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

returnLayout

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

argumentLayouts

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

appendArgumentLayouts

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

insertArgumentLayouts

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

changeReturnLayout

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

dropReturnLayout

FunctionDescriptor dropReturnLayout()
Возвращает новый дескриптор функции без компоновки возвращаемого значения.
Возвращает:
новый дескриптор функции без компоновки возвращаемого значения

toMethodType

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

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

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

of

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

ofVoid

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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/FunctionDescriptor.html

Spec-Zone.ru

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