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