Spec-Zone.ru › OpenJDK 25

Класс CallSiteDescriptor

java.lang.Object
jdk.dynalink.SecureLookupSupplier
jdk.dynalink.CallSiteDescriptor
public class CallSiteDescriptor extends SecureLookupSupplier
Дескрипторы точки вызова содержат всю информацию, необходимую для связывания точки вызова. Эта информация обычно передается в качестве параметров методам начальной загрузки и состоит из объекта MethodHandles.Lookup в классе вызывающего кода, в котором находится точка вызова, динамической операции в точке вызова и типа метода точки вызова. Объекты CallSiteDescriptor используются в Dynalink для сохранения этих параметров с целью последующего использования DynamicLinker .

Все конструкторы встроенных реализаций RelinkableCallSite принимают дескриптор точки вызова.

Дескрипторы точки вызова должны быть неизменяемыми. Этот класс можно использовать как есть или создать его подкласс, особенно если требуется добавить в дескрипторы дополнительную информацию (обычно значения, передаваемые в дополнительных параметрах методу начальной загрузки). Поскольку дескрипторы должны быть неизменяемыми, для эквивалентных дескрипторов можно настроить кэш, чтобы точки вызова могли совместно использовать их.

Класс расширяет SecureLookupSupplier, чтобы инкапсулировать объект MethodHandles.Lookup. Этот объект поиска следует использовать для поиска дескрипторов методов, которые будут заданы в качестве целей точки вызова, описанной этим дескриптором.

Начиная с:
9

Краткое описание полей

Поля, объявленные в классе 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.

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

getLookup, getLookupPrivileged

Методы, объявленные в классе 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().
Переопределяет:
equals в классе Object
Параметры:
obj — объект-ссылка, с которым выполняется сравнение.
Возвращает:
true, если этот объект совпадает с аргументом obj; в противном случае — false.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

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

toString

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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