Класс DynamicCallSiteDesc
java.lang.Object
java.lang.constant.DynamicCallSiteDesc
public class DynamicCallSiteDesc extends Object
Описание вызова
invokedynamic типа. Конкретные подтипы DynamicCallSiteDesc должны быть неизменяемыми, и их поведение не должно зависеть от тождества объекта.
- Since:
- 12
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ConstantDesc[] |
bootstrapArgs() |
Возвращает ConstantDesc, описывающие аргументы запуска для invokedynamic. |
MethodHandleDesc |
bootstrapMethod() |
Возвращает MethodHandleDesc, описывающий метод запуска для invokedynamic. |
final boolean |
equals |
Сравнивает указанный объект с этим описанием на равенство. |
final int |
hashCode() |
Возвращает код хеширования для объекта. |
String |
invocationName() |
Возвращает имя вызова, которое отобразится в операнде NameAndType invokedynamic. |
MethodTypeDesc |
invocationType() |
Возвращает MethodTypeDesc, описывающий тип вызова, который отобразится в операнде NameAndType invokedynamic. |
static DynamicCallSiteDesc |
of |
Создаёт номинальное описание вызова invokedynamic типа, у метода запуска которого нет статических аргументов, и параметр name равен ConstantDescs.DEFAULT_NAME. |
static DynamicCallSiteDesc |
of |
Создаёт номинальное описание вызова invokedynamic типа, у метода запуска которого нет статических аргументов. |
static DynamicCallSiteDesc |
of |
Создаёт номинальное описание вызова invokedynamic типа. |
CallSite |
resolveCallSiteDesc |
Рефлексивно вызывает метод запуска со специфицированными аргументами и возвращает результирующий CallSite
|
String |
toString() |
Возвращает компактное текстовое описание этого описания вызова, включая метод запуска, имя и тип вызова, а также статические аргументы запуска. |
DynamicCallSiteDesc |
withArgs |
Возвращает номинальное описание вызова invokedynamic типа, у которого метод запуска, имя и тип вызова такие же, как и у этого, но со специфицированными аргументами запуска. |
DynamicCallSiteDesc |
withNameAndType |
Возвращает номинальное описание вызова invokedynamic типа, у которого метод запуска и аргументы запуска такие же, как и у этого, но со специфицированным именем и типом вызова. |
Подробное описание методов
of
public static DynamicCallSiteDesc of(DirectMethodHandleDesc bootstrapMethod, String invocationName, MethodTypeDesc invocationType, ConstantDesc... bootstrapArgs)
Создаёт номинальный дескриптор для узла вызова
invokedynamic. - Параметры:
-
bootstrapMethod-DirectMethodHandleDesc, описывающий метод инициализации дляinvokedynamic -
invocationName- Неполное имя, которое будет отображаться в операндеNameAndTypeдляinvokedynamic -
invocationType-MethodTypeDesc, описывающий тип вызова, который будет отображаться в операндеNameAndTypeдляinvokedynamic -
bootstrapArgs-ConstantDesc, описывающие статические аргументы для инициализации, которые будут отображаться в атрибутеBootstrapMethods - Возвращает:
- номинальный дескриптор
- Исключения:
-
NullPointerException- если любой параметр или его содержимоеnull -
IllegalArgumentException- если имя вызова имеет неправильный формат - См. Спецификацию Java Virtual Machine:
- 4.2.2 Неполные имена
of
public static DynamicCallSiteDesc of(DirectMethodHandleDesc bootstrapMethod, String invocationName, MethodTypeDesc invocationType)
Создаёт номинальный дескриптор для узла вызова
invokedynamic , у которого метод инициализации не имеет статических аргументов.- Параметры:
-
bootstrapMethod- метод инициализации дляinvokedynamic -
invocationName- имя вызова, которое будет отображаться в операндеNameAndTypeдляinvokedynamic -
invocationType- тип вызова, который будет отображаться в операндеNameAndTypeдляinvokedynamic - Возвращает:
- номинальный дескриптор
- Исключения:
-
NullPointerException- если любой параметр равен null -
IllegalArgumentException- если имя вызова имеет неправильный формат
of
public static DynamicCallSiteDesc of(DirectMethodHandleDesc bootstrapMethod, MethodTypeDesc invocationType)
Создаёт номинальный дескриптор для узла вызова
invokedynamic , у которого метод инициализации не имеет статических аргументов и для которого параметр name равен ConstantDescs.DEFAULT_NAME.- Параметры:
-
bootstrapMethod-DirectMethodHandleDesc, описывающий метод инициализации дляinvokedynamic -
invocationType-MethodTypeDesc, описывающий тип вызова, который будет отображаться в операндеNameAndTypeдляinvokedynamic - Возвращает:
- номинальный дескриптор
- Исключения:
-
NullPointerException- если любой параметр равен null
withArgs
public DynamicCallSiteDesc withArgs(ConstantDesc... bootstrapArgs)
Возвращает номинальный дескриптор для узла вызова
invokedynamic , у которого метод инициализации, имя и тип вызова совпадают с этим, но с указанными аргументами инициализации.- Параметры:
-
bootstrapArgs-ConstantDesc, описывающие статические аргументы для инициализации, которые будут отображаться в атрибутеBootstrapMethods - Возвращает:
- номинальный дескриптор
- Исключения:
-
NullPointerException- если аргумент или его содержимоеnull
withNameAndType
public DynamicCallSiteDesc withNameAndType(String invocationName, MethodTypeDesc invocationType)
Возвращает номинальный дескриптор для узла вызова
invokedynamic , у которого метод инициализации и аргументы инициализации такие же, как и у этого, но с указанным именем и типом вызова.- Параметры:
-
invocationName- Неполное имя, которое будет отображаться в операндеNameAndTypeдляinvokedynamic -
invocationType-MethodTypeDesc, описывающий тип вызова, который будет отображаться в операндеNameAndTypeдляinvokedynamic - Возвращает:
- номинальный дескриптор
- Исключения:
-
NullPointerException- если любой параметр равен null -
IllegalArgumentException- если имя вызова имеет неправильный формат - См. Спецификацию Java Virtual Machine:
- 4.2.2 Неполные имена
invocationName
public String invocationName()
Возвращает имя вызова, которое будет отображаться в операнде
NameAndType для invokedynamic.- Возвращает:
- имя вызова
invocationType
public MethodTypeDesc invocationType()
Возвращает
MethodTypeDesc, описывающий тип вызова, который будет отображаться в операнде NameAndType для invokedynamic.- Возвращает:
- тип вызова
bootstrapMethod
public MethodHandleDesc bootstrapMethod()
Возвращает
MethodHandleDesc, описывающий метод инициализации для invokedynamic.- Возвращает:
- метод инициализации для
invokedynamic
bootstrapArgs
public ConstantDesc[] bootstrapArgs()
Возвращает
ConstantDesc, описывающие аргументы инициализации для invokedynamic. Возвращаемый массив всегда не равен null. Массив нулевой длины возвращается, если у данного DynamicCallSiteDesc нет аргументов инициализации.- Возвращает:
- аргументы инициализации для
invokedynamic
resolveCallSiteDesc
public CallSite resolveCallSiteDesc(MethodHandles.Lookup lookup) throws Throwable
Рефлексивно вызывает метод инициализации со специфицированными аргументами и возвращает полученный
CallSite
- Параметры:
-
lookup-MethodHandles.Lookup, используемый для разрешения имён классов - Возвращает:
-
CallSite - Исключения:
-
Throwable- если был брошен любой исключение методом инициализации
equals
public final boolean equals(Object o)
Сравнивает указанный объект с этим дескриптором на равенство. Возвращает
true тогда и только тогда, когда указанный объект также является DynamicCallSiteDesc и оба дескриптора имеют равные методы инициализации, списки аргументов инициализации, имена и типы вызова.- Overrides:
-
equalsв классеObject - Параметры:
-
o- объект для сравнения с этим дескриптором - Возвращает:
-
trueесли указанный объект равен этому дескриптору. - См. также:
hashCode
public final int hashCode()
Описание скопировано из класса:
ObjectВозвращает значение кода хэша для объекта. Этот метод поддерживается для использования в хэш-таблицах, таких как те, что предоставляются
HashMap. Общий контракт метода hashCode таков:
- Всякий раз, когда он вызывается для одного и того же объекта более одного раза во время выполнения Java-приложения, метод
hashCodeдолжен последовательно возвращать одно и то же целое число, если информация, используемая в сравнениях сequalsобъекта, не модифицируется. Это целое число не обязательно должно сохраняться от одного выполнения приложения к другому выполнению того же приложения. - Если два объекта равны согласно методу
equals, то вызов методаhashCodeдля каждого из двух объектов должен давать один и тот же результат. - Не требуется, чтобы если два объекта не равны согласно методу
equals, то вызов методаhashCodeдля каждого из двух объектов давал разные целые числа. Однако программист должен понимать, что предоставление различных целых чисел для неравных объектов может улучшить производительность хэш-таблиц.
- Overrides:
-
hashCodeв классеObject - Возвращает:
- значение хэша для этого объекта.
- См. также:
toString
public String toString()
Возвращает компактное текстовое описание этого описания места вызова, включая метод загрузки, имя и тип вызова, а также статические аргументы загрузки.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- Компактное текстовое описание этого описателя места вызова
© 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/constant/DynamicCallSiteDesc.html