java.lang.Object
java.lang.invoke.CallSite
java.lang.invoke.MutableCallSite
jdk.dynalink.support.AbstractRelinkableCallSite
- 所有已实现的接口:
RelinkableCallSite
public abstract class AbstractRelinkableCallSite extends MutableCallSite implements RelinkableCallSite
RelinkableCallSite 作为 MutableCallSite 的基本实现。它带有在构造函数中传递的 CallSiteDescriptor 并提供 initialize(MethodHandle) 方法的正确实现。子类必须提供 RelinkableCallSite.relink(GuardedInvocation, MethodHandle) 和 RelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle) 方法。
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述返回此调用站点的描述符。voidinitialize(MethodHandle relinkAndInvoke) 由动态链接器调用以通过设置重新链接和调用方法句柄来初始化可重新链接的调用站点。在类 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
创建一个新的抽象可重新链接的调用站点。- 参数:
descriptor- 将从getDescriptor()返回的此调用站点的描述符。呼叫站点的CallSite.type()将等于描述符的CallSiteDescriptor.getMethodType()。- 抛出:
NullPointerException- 如果descriptor为空。
-
-
方法详情
-
getDescriptor
从接口RelinkableCallSite复制的描述返回此调用站点的描述符。- 指定者:
getDescriptor在接口RelinkableCallSite中- 返回:
- 此调用站点的描述符。
-
initialize
从接口RelinkableCallSite复制的描述由动态链接器调用以通过设置重新链接和调用方法句柄来初始化可重新链接的调用站点。调用站点实现应该使用CallSite.setTarget(MethodHandle)将此方法句柄设置为其目标。 Relink-and-invoke 是由DynamicLinker.link(RelinkableCallSite)设置的初始方法句柄,它将导致调用站点在其第一次调用时根据其参数重新链接到适当的目标,然后将调用该链接的目标(因此得名)。此链接协议有效地延迟了链接,直到使用实际参数调用调用站点,从而确保链接器可以根据这些参数而不仅仅是调用站点的静态方法类型做出细微的链接决策。- 指定者:
initialize在接口RelinkableCallSite中- 参数:
relinkAndInvoke- 由 Dynalink 提供的重新链接和调用方法句柄。
-