Класс CallSiteDescriptor
public class CallSiteDescriptor extends SecureLookupSupplier
MethodHandles.Lookup в классе вызывающего кода, в котором находится точка вызова, динамической операции в точке вызова и типа метода точки вызова. Объекты CallSiteDescriptor используются в Dynalink для сохранения этих параметров с целью последующего использования DynamicLinker . Все конструкторы встроенных реализаций RelinkableCallSite принимают дескриптор точки вызова.
Дескрипторы точки вызова должны быть неизменяемыми. Этот класс можно использовать как есть или создать его подкласс, особенно если требуется добавить в дескрипторы дополнительную информацию (обычно значения, передаваемые в дополнительных параметрах методу начальной загрузки). Поскольку дескрипторы должны быть неизменяемыми, для эквивалентных дескрипторов можно настроить кэш, чтобы точки вызова могли совместно использовать их.
Класс расширяет SecureLookupSupplier, чтобы инкапсулировать объект
MethodHandles.Lookup. Этот объект поиска следует использовать для поиска дескрипторов методов, которые будут заданы в качестве целей точки вызова, описанной этим дескриптором.
- Начиная с:
- 9
Краткое описание полей
Поля, объявленные в классе 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. |
Методы, объявленные в классе 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
public int 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://docs.oracle.com/en/java/javase/25/docs/api/jdk.dynalink/jdk/dynalink/CallSiteDescriptor.html