Класс FunctionDescriptor
java.lang.Object
jdk.incubator.foreign.FunctionDescriptor
- Все реализованные интерфейсы:
Constable
public final class FunctionDescriptor extends Object implements Constable
Описание функции состоит из нуля или более расположений аргументов и нуля или одного расположения возвращаемого значения. Описание функции используется для моделирования сигнатуры внешних функций.
Если не указано иное, передача null аргумента или аргумента массива, содержащего один или несколько null элементов, в метод в этом классе приводит к выбрасыванию NullPointerException.
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
TRIVIAL_ATTRIBUTE_NAME |
Имя атрибута описания функции (см. attributes()), используемого для маркировки тривиальных функций. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
List<MemoryLayout> |
argumentLayouts() |
Возвращает расположения аргументов, связанные с этой функцией. |
Optional<Constable> |
attribute |
Возвращает атрибут с заданным именем (если он существует). |
Stream<String> |
attributes() |
Возвращает поток имен атрибутов, связанных с этим описанием функции. |
Optional<DynamicConstantDesc<FunctionDescriptor>> |
describeConstable() |
|
boolean |
equals |
Сравнивает указанный объект с этим описанием функции на равенство. |
int |
hashCode() |
Возвращает значение хэш-кода для этого описания функции. |
static FunctionDescriptor |
of |
Создаёт описание функции с заданными расположениями возвращаемого значения и аргументов. |
static FunctionDescriptor |
ofVoid |
Создаёт описание функции с заданными расположениями аргументов и без расположения возвращаемого значения. |
Optional<MemoryLayout> |
returnLayout() |
Возвращает расположение возвращаемого значения, связанное с этой функцией. |
String |
toString() |
Возвращает строковое представление этого описания функции. |
FunctionDescriptor |
withAppendedArgumentLayouts |
Создаёт новое описание функции с заданными расположениями аргументов, добавленными к массиву расположений аргументов этого описания функции. |
FunctionDescriptor |
withAttribute |
Возвращает новое описание функции, которое содержит те же атрибуты, что и это описание, плюс новый указанный атрибут. |
FunctionDescriptor |
withReturnLayout |
Создаёт новое описание функции с заданным расположением памяти в качестве нового расположения возвращаемого значения. |
FunctionDescriptor |
withVoidReturnLayout() |
Создаёт новое описание функции, из которого исключено расположение возвращаемого значения. |
Подробное описание полей
TRIVIAL_ATTRIBUTE_NAME
public static final String TRIVIAL_ATTRIBUTE_NAME
Имя атрибута описателя функции (см.
attributes()), используемого для маркировки тривиальных функций. Значение атрибута должно быть булевым.- См. также:
Подробное описание методов
attribute
public Optional<Constable> attribute(String name)
Возвращает атрибут с заданным именем (если он существует).
- Параметры:
-
name- имя атрибута. - Возвращает:
- атрибут с заданным именем (если он существует).
attributes
public Stream<String> attributes()
Возвращает поток имён атрибутов, связанных с этим описателем функции.
- Возвращает:
- поток имён атрибутов, связанных с этим описателем функции.
withAttribute
public FunctionDescriptor withAttribute(String name, Constable value)
Возвращает новый описатель функции, который содержит те же атрибуты, что и этот описатель, плюс новый указанный атрибут. Если этот описатель уже содержит атрибут с тем же именем, то существующее значение атрибута перезаписывается в возвращённом описателе.
- Параметры:
-
name- имя атрибута. -
value- значение атрибута. - Возвращает:
- новый описатель функции, который содержит те же атрибуты, что и этот описатель, плюс новый указанный атрибут.
returnLayout
public Optional<MemoryLayout> returnLayout()
Возвращает макет возвращаемого значения, связанный с этой функцией.
- Возвращает:
- макет возвращаемого значения.
argumentLayouts
public List<MemoryLayout> argumentLayouts()
Возвращает макеты аргументов, связанные с этой функцией.
- Возвращает:
- макеты аргументов.
of
public static FunctionDescriptor of(MemoryLayout resLayout, MemoryLayout... argLayouts)
Создаёт описатель функции с заданными макетами возвращаемого значения и аргументов.
- Параметры:
-
resLayout- макет возвращаемого значения. -
argLayouts- макеты аргументов. - Возвращает:
- новый описатель функции.
ofVoid
public static FunctionDescriptor ofVoid(MemoryLayout... argLayouts)
Создаёт описатель функции с заданными макетами аргументов и без макета возвращаемого значения.
- Параметры:
-
argLayouts- макеты аргументов. - Возвращает:
- новый описатель функции.
withAppendedArgumentLayouts
public FunctionDescriptor withAppendedArgumentLayouts(MemoryLayout... addedLayouts)
Создаёт новый описатель функции с заданными макетами аргументов, добавленными в массив макетов аргументов этого описателя функции.
- Параметры:
-
addedLayouts- макеты аргументов для добавления. - Возвращает:
- новый описатель функции.
withReturnLayout
public FunctionDescriptor withReturnLayout(MemoryLayout newReturn)
Создаёт новый описатель функции с заданным макетом памяти как новым макетом возвращаемого значения.
- Параметры:
-
newReturn- новый макет возвращаемого значения. - Возвращает:
- новый описатель функции.
withVoidReturnLayout
public FunctionDescriptor withVoidReturnLayout()
Создаёт новый описатель функции без макета возвращаемого значения.
- Возвращает:
- новый описатель функции.
toString
public String toString()
Возвращает строковое представление этого описателя функции.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление этого описателя функции.
equals
public boolean equals(Object other)
Сравнивает указанный объект с этим описателем функции на равенство. Возвращает
true тогда и только тогда, когда указанный объект также является описателем функции и выполняются все следующие условия: - два описателя функций имеют равные макеты возвращаемого значения (см.
MemoryLayout.equals(Object)), или оба не имеют макета возвращаемого значения - макеты аргументов двух описателей функций попарно равны (см.
MemoryLayout.equals(Object))
- Переопределяет:
-
equalsв классеObject - Параметры:
-
other- объект для сравнения на равенство с этим описателем функции. - Возвращает:
-
trueесли указанный объект равен этому описателю функции. - См. также:
hashCode
public int hashCode()
Возвращает значение хэш-кода для этого описателя функции.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого описателя функции.
- См. также:
describeConstable
public Optional<DynamicConstantDesc<FunctionDescriptor>> describeConstable()
Описание скопировано из интерфейса:
ConstableВозвращает
Optional, содержащую номинальный описатель для этого экземпляра, если он может быть создан, или пустой Optional, если он не может быть создан.- Определено в:
-
describeConstableв интерфейсеConstable - Возвращает:
Optional, содержащий получившийся номинальный описатель, или пустойOptional, если он не может быть создан.
© 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/FunctionDescriptor.html