Класс CallSiteDescriptor
public class CallSiteDescriptor extends SecureLookupSupplier
MethodHandles.Lookup класса вызывающего объекта, в котором происходит узел вызова, динамической операции в узле вызова и типа метода узла вызова. Объекты CallSiteDescriptor используются в Dynalink для захвата и хранения этих параметров для последующего использования DynamicLinker. Конструкторы встроенных реализаций RelinkableCallSite принимают описатель узла вызова.
Описатели узлов вызова должны быть неизменяемыми. Вы можете использовать этот класс как есть, или вы можете создать его подкласс, особенно если вам нужно добавить дополнительную информацию в описатели (обычно, значения, передаваемые в дополнительных параметрах методу начальной загрузки). Поскольку описатели должны быть неизменяемыми, вы можете создать кэш эквивалентных описателей, чтобы узлы вызова делили их.
Класс расширяет SecureLookupSupplier для инкапсуляции объекта
MethodHandles.Lookup. Этот поиск должен использоваться для поиска обработчиков методов, которые будут установлены в качестве целей узла вызова, описываемого этим описателем.
- Since:
- 9
Краткое описание полей
Поля, объявленные в классе jdk.dynalink.SecureLookupSupplier
GET_LOOKUP_PERMISSION_NAME
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
CallSiteDescriptor |
Создает новый описатель узла вызова. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final CallSiteDescriptor |
changeMethodType |
Находит или создаёт описатель узла вызова, отличающийся только типом метода от этого описателя. |
protected CallSiteDescriptor |
changeMethodTypeInternal |
Находит или создаёт описатель узла вызова, отличающийся только типом метода от этого описателя. |
final CallSiteDescriptor |
changeOperation |
Находит или создаёт описатель узла вызова, отличающийся только операцией от этого описателя. |
protected CallSiteDescriptor |
changeOperationInternal |
Находит или создаёт описатель узла вызова, отличающийся только операцией от этого описателя. |
boolean |
equals |
Возвращает true, если этот описатель узла вызова равен переданному объекту. |
final MethodType |
getMethodType() |
Тип метода в узле вызова. |
final Operation |
getOperation() |
Возвращает операцию в узле вызова. |
int |
hashCode() |
Возвращает хеш-код, основанный на значении, этого описателя узла вызова, вычисленный из его операции, типа метода и класса объекта поиска и режимов поиска. |
String |
toString() |
Возвращает строковое представление этого описателя узла вызова в формате name(parameterTypes)returnType@lookup. |
Методы, объявленные в классе jdk.dynalink.SecureLookupSupplier
getLookup, getLookupPrivileged
Подробное описание конструкторов
CallSiteDescriptor
public CallSiteDescriptor(MethodHandles.Lookup lookup, Operation operation, MethodType methodType)
- Параметры:
-
lookup- объект поиска, описывающий класс, к которому относится вызов. При создании описателей из метода начальной загрузкиjava.lang.invokeон должен быть тем объектом поиска, который был передан в метод начальной загрузки. -
operation- динамическая операция в месте вызова. -
methodType- тип метода в месте вызова. При создании описателей из метода начальной загрузкиjava.lang.invokeон должен быть типом метода, переданным в метод начальной загрузки.
Подробное описание методов
getOperation
public final Operation getOperation()
- Возвращает:
- операцию в месте вызова.
getMethodType
public final MethodType getMethodType()
- Возвращает:
- тип метода в месте вызова.
changeMethodType
public final CallSiteDescriptor changeMethodType(MethodType newMethodType)
changeMethodTypeInternal(MethodType).- Параметры:
-
newMethodType- новый тип метода - Возвращает:
- описатель вызова с изменённым типом метода.
- Исключения:
-
NullPointerException- еслиnewMethodTypeравно null.
changeMethodTypeInternal
protected CallSiteDescriptor changeMethodTypeInternal(MethodType newMethodType)
changeMethodType(MethodType) будет брошено исключение AssertionError.- Параметры:
-
newMethodType- новый тип метода - Возвращает:
- описатель вызова с изменённым типом метода.
changeOperation
public final CallSiteDescriptor changeOperation(Operation newOperation)
changeOperationInternal(Operation).- Параметры:
-
newOperation- новая операция - Возвращает:
- описатель вызова с изменённой операцией.
- Исключения:
-
NullPointerException- еслиnewOperationравно null.
changeOperationInternal
protected CallSiteDescriptor changeOperationInternal(Operation newOperation)
changeOperation(Operation) будет брошено исключение AssertionError.- Параметры:
-
newOperation- новая операция - Возвращает:
- описатель вызова с изменённой операцией.
equals
public boolean equals(Object obj)
MethodHandles.Lookup.lookupClass() и MethodHandles.Lookup.lookupModes().hashCode
toString
© 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://download.java.net/java/early_access/jdk24/docs/api/jdk.dynalink/jdk/dynalink/CallSiteDescriptor.html