Spec-Zone.ru › OpenJDK 27

Класс AbstractRelinkableCallSite

java.lang.Object
java.lang.invoke.CallSite
java.lang.invoke.MutableCallSite
jdk.dynalink.support.AbstractRelinkableCallSite
Все реализуемые интерфейсы:
RelinkableCallSite
Прямые известные подклассы:
ChainedCallSite, SimpleRelinkableCallSite
public abstract class AbstractRelinkableCallSite extends MutableCallSite implements RelinkableCallSite
Базовая реализация RelinkableCallSite в виде MutableCallSite. Она хранит CallSiteDescriptor, переданный конструктору, и предоставляет корректную реализацию метода initialize(MethodHandle). Подклассы должны предоставлять методы RelinkableCallSite.relink(GuardedInvocation, MethodHandle) и RelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle).
Начиная с:
9

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

AbstractRelinkableCallSite(CallSiteDescriptor descriptor)
Модификатор Конструктор Описание
protected
Создает новую абстрактную перенастраиваемую точку вызова.

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

Модификатор и тип Метод Описание
CallSiteDescriptor getDescriptor()
Возвращает дескриптор этой точки вызова.
void initialize(MethodHandle relinkAndInvoke)
Вызывается динамическим компоновщиком для инициализации перенастраиваемой точки вызова путем установки дескриптора метода перенастройки и вызова.

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

dynamicInvoker, getTarget, setTarget, syncAll
Модификатор и тип Метод Описание
final MethodHandle dynamicInvoker()
Создает дескриптор метода, эквивалентный инструкции invokedynamic, связанной с этой точкой вызова.
final MethodHandle getTarget()
Возвращает целевой метод точки вызова, который ведет себя как обычное поле MutableCallSite.
void setTarget(MethodHandle newTarget)
Обновляет целевой метод этой точки вызова как обычную переменную.
static void syncAll(MutableCallSite[] sites)
Выполняет операцию синхронизации для каждой точки вызова в указанном массиве, заставляя все остальные потоки отбросить ранее загруженные кэшированные значения, полученные из цели любой из этих точек вызова.

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

type
Модификатор и тип Метод Описание
MethodType type()
Возвращает тип цели этой точки вызова.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо истечения определенного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо истечения определенного промежутка реального времени.

Методы, объявленные в интерфейсе RelinkableCallSite

relink, resetAndRelink
Модификатор и тип Метод Описание
void relink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
Этот метод вызывается динамическим компоновщиком при каждой перенастройке точки вызова (исключение см. в описании RelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)).
void resetAndRelink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
Этот метод вызывается динамическим компоновщиком при каждой перенастройке точки вызова, и при этом компоновщик хочет, чтобы точка вызова отбросила все предыдущее состояние связывания (этим он отличается от RelinkableCallSite.relink(GuardedInvocation, MethodHandle)).

Подробное описание конструкторов

AbstractRelinkableCallSite

protected AbstractRelinkableCallSite(CallSiteDescriptor descriptor)
Создает новую абстрактную перенастраиваемую точку вызова.
Параметры:
descriptor — дескриптор этой точки вызова, который будет возвращен методом getDescriptor(). Тип CallSite.type() точки вызова будет равен CallSiteDescriptor.getMethodType() дескриптора.
Исключения:
NullPointerException — если descriptor имеет значение null.

Подробное описание методов

getDescriptor

public CallSiteDescriptor getDescriptor()
Описание скопировано из интерфейса: RelinkableCallSite
Возвращает дескриптор этой точки вызова.
Определен в:
getDescriptor в интерфейсе RelinkableCallSite
Возвращает:
дескриптор этой точки вызова.

initialize

public void initialize(MethodHandle relinkAndInvoke)
Описание скопировано из интерфейса: RelinkableCallSite
Вызывается динамическим компоновщиком для инициализации перенастраиваемой точки вызова путем установки дескриптора метода перенастройки и вызова. Реализация точки вызова должна установить этот дескриптор метода в качестве цели с помощью CallSite.setTarget(MethodHandle). Дескриптор метода перенастройки и вызова — это начальный дескриптор метода, установленный методом DynamicLinker.link(RelinkableCallSite), который при первом вызове точки вызова приводит к ее перенастройке на подходящую цель на основе аргументов, после чего вызывается связанная цель (отсюда и название). Этот протокол связывания фактически откладывает связывание до тех пор, пока точка вызова не будет вызвана с фактическими аргументами, и тем самым позволяет компоновщикам принимать более точные решения о связывании на основе этих аргументов, а не только статического типа метода точки вызова.
Определен в:
initialize в интерфейсе RelinkableCallSite
Параметры:
relinkAndInvoke — дескриптор метода перенастройки и вызова, предоставленный Dynalink.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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