Класс CallSiteDescriptor
public class CallSiteDescriptor extends SecureLookupSupplier
MethodHandles.Lookup класса вызывающего кода, в котором находится точка вызова, динамической операции в точке вызова и типа метода точки вызова. Объекты CallSiteDescriptor используются в Dynalink для фиксации и сохранения этих параметров для последующего использования в DynamicLinker. Все конструкторы встроенных реализаций RelinkableCallSite принимают дескриптор точки вызова.
Дескрипторы точек вызова должны быть неизменяемыми. Вы можете использовать этот класс без изменений или создать его подкласс, особенно если необходимо добавить в дескрипторы дополнительную информацию (обычно это значения, передаваемые в дополнительных параметрах методу начальной загрузки). Поскольку дескрипторы должны быть неизменяемыми, можно создать кэш эквивалентных дескрипторов, чтобы точки вызова использовали общие экземпляры.
Класс расширяет SecureLookupSupplier для инкапсуляции объекта
MethodHandles.Lookup. Этот объект поиска следует использовать для поиска дескрипторов методов, назначаемых целевыми объектами точки вызова, описанной данным дескриптором.
- С версии:
- 9
Краткое описание полей
Поля, объявленные в классе SecureLookupSupplier
GET_LOOKUP_PERMISSION_NAME | Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
GET_LOOKUP_PERMISSION_NAME |
Имя разрешения времени выполнения, необходимого для успешного вызова метода SecureLookupSupplier.getLookup(). |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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 | Модификатор и тип | Метод | Описание |
|---|---|---|
final MethodHandles.Lookup |
getLookup() |
Возвращает объект поиска, защищенный этим SecureLookupSupplier. |
protected final MethodHandles.Lookup |
getLookupPrivileged() |
Возвращает объект поиска, защищенный этим SecureLookupSupplier. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удален в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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.