Класс DynamicCallSiteDesc
java.lang.Object
java.lang.constant.DynamicCallSiteDesc
public class DynamicCallSiteDesc extends Object
Именанованный дескриптор для сайта вызова
invokedynamic. Конкретные подтипы DynamicCallSiteDesc должны быть неизменяемыми, а их поведение не должно зависеть от идентификатора объекта.
- Since:
- 12
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ConstantDesc[] |
bootstrapArgs() |
Возвращает ConstantDescs, описывающие аргументы загрузки для 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:
- 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 , метод загрузки которого не имеет статических аргументов, а параметр имени имеет значение 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:
- 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()
Возвращает компактное текстовое описание этого описания места вызова, включая метод инициализации, имя и тип вызова, а также статические аргументы инициализации.
- Overrides:
-
toStringв классеObject - Возвращает:
- Компактное текстовое описание этого описания места вызова
© 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/java.base/java/lang/constant/DynamicCallSiteDesc.html