Spec-Zone.ru › OpenJDK 24

Класс CallSiteDescriptor

java.lang.Object
jdk.dynalink.SecureLookupSupplier
jdk.dynalink.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(MethodHandles.Lookup lookup, Operation operation, MethodType methodType)
Создает новый описатель узла вызова.

Краткое описание методов

Модификатор и тип Метод Описание
final CallSiteDescriptor changeMethodType(MethodType newMethodType)
Находит или создаёт описатель узла вызова, отличающийся только типом метода от этого описателя.
protected CallSiteDescriptor changeMethodTypeInternal(MethodType newMethodType)
Находит или создаёт описатель узла вызова, отличающийся только типом метода от этого описателя.
final CallSiteDescriptor changeOperation(Operation newOperation)
Находит или создаёт описатель узла вызова, отличающийся только операцией от этого описателя.
protected CallSiteDescriptor changeOperationInternal(Operation newOperation)
Находит или создаёт описатель узла вызова, отличающийся только операцией от этого описателя.
boolean equals(Object obj)
Возвращает true, если этот описатель узла вызова равен переданному объекту.
final MethodType getMethodType()
Тип метода в узле вызова.
final Operation getOperation()
Возвращает операцию в узле вызова.
int hashCode()
Возвращает хеш-код, основанный на значении, этого описателя узла вызова, вычисленный из его операции, типа метода и класса объекта поиска и режимов поиска.
String toString()
Возвращает строковое представление этого описателя узла вызова в формате name(parameterTypes)returnType@lookup.

Методы, объявленные в классе jdk.dynalink.SecureLookupSupplier

getLookup, getLookupPrivileged

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, 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)
Находит или создаёт описатель вызова, который отличается от этого описателя только типом метода. Подклассы должны переопределить этот метод, чтобы вернуть объект своего точного класса. Если переопределённый метод изменяет что-либо помимо типа метода в описателе (его класс, объект поиска или операцию) или возвращает null, из changeMethodType(MethodType) будет брошено исключение AssertionError.
Параметры:
newMethodType - новый тип метода
Возвращает:
описатель вызова с изменённым типом метода.

changeOperation

public final CallSiteDescriptor changeOperation(Operation newOperation)
Находит или создаёт описатель вызова, который отличается от этого описателя только операцией. Вызывает changeOperationInternal(Operation).
Параметры:
newOperation - новая операция
Возвращает:
описатель вызова с изменённой операцией.
Исключения:
NullPointerException - если newOperation равно null.

changeOperationInternal

protected CallSiteDescriptor changeOperationInternal(Operation newOperation)
Находит или создаёт описатель вызова, который отличается от этого описателя только операцией. Подклассы должны переопределить этот метод, чтобы вернуть объект своего точного класса. Если переопределённый метод изменяет что-либо помимо операции в описателе (его класс, объект поиска или тип метода) или возвращает null, из changeOperation(Operation) будет брошено исключение AssertionError.
Параметры:
newOperation - новая операция
Возвращает:
описатель вызова с изменённой операцией.

equals

public boolean equals(Object obj)
Возвращает true, если этот описатель вызова равен переданному объекту. Он считается равным, если другой объект имеет тот же самый класс, их операции и типы методов равны, и их объекты поиска имеют одинаковые MethodHandles.Lookup.lookupClass() и MethodHandles.Lookup.lookupModes().
Overrides:
equals в классе Object
Параметры:
obj - объект-ссылка для сравнения.
Возвращает:
true, если этот объект такой же, как аргумент obj; false в противном случае.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает хеш-код, основанный на значении этого описателя вызова, вычисленный из его операции, типа метода и класса поиска и режимов поиска объекта поиска.
Overrides:
hashCode в классе Object
Возвращает:
хеш-код, основанный на значении этого описателя вызова.
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

public String toString()
Возвращает строковое представление этого описателя вызова в формате name(parameterTypes)returnType@lookup.
Overrides:
toString в классе Object
Возвращает:
строковое представление объекта

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API