Класс 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
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает новую абстрактную повторно связываемую точку вызова. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
CallSiteDescriptor |
getDescriptor() |
Возвращает дескриптор этой точки вызова. |
void |
initialize |
Вызывается динамическим компоновщиком для инициализации повторно связываемой точки вызова путем установки дескриптора метода повторного связывания и вызова. |
Методы, объявленные в классе MutableCallSite
dynamicInvoker, getTarget, setTarget, syncAll
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе RelinkableCallSite
relink, resetAndRelink
Подробное описание конструкторов
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 дескриптор метода повторного связывания и вызова.
© 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/support/AbstractRelinkableCallSite.html