java.lang.Object
java.lang.invoke.CallSite
java.lang.invoke.MutableCallSite
jdk.dynalink.support.AbstractRelinkableCallSite
jdk.dynalink.support.SimpleRelinkableCallSite
- 所有已实现的接口:
-
RelinkableCallSite
一个实现了单态内联缓存策略的可重新链接调用站点,每次只链接到单个
GuardedInvocation
。如果该单个调用失败,或者具有无效的开关点,或者其无效的异常被触发,则调用站点将丢弃它并要求其关联的 DynamicLinker
重新链接它。
-
Constructor Summary
ConstructorDescriptionSimpleRelinkableCallSite
(CallSiteDescriptor descriptor) 创建一个新的具有单态内联缓存策略的调用站点。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
relink
(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) 每次调用站点重新链接时,动态链接器都会调用此方法(但请参阅RelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)
以获取异常)。void
resetAndRelink
(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) 每次调用站点重新链接时,动态链接器都会调用此方法 并且 链接器希望调用站点丢弃任何先前的链接状态(这与RelinkableCallSite.relink(GuardedInvocation, MethodHandle)
的区别在于)。Methods declared in class jdk.dynalink.support.AbstractRelinkableCallSite
getDescriptor, initialize
Methods declared in class java.lang.invoke.MutableCallSite
dynamicInvoker, getTarget, setTarget, syncAll
-
Constructor Details
-
SimpleRelinkableCallSite
创建一个新的具有单态内联缓存策略的调用站点。- 参数:
-
descriptor
- 此调用站点的描述符
-
-
Method Details
-
relink
从接口复制的描述:RelinkableCallSite
每次调用站点重新链接时,动态链接器都会调用此方法(但请参阅RelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)
以获取异常)。它将传递一个GuardedInvocation
,调用站点应将其合并到其目标方法句柄中。调用此方法时,调用站点可以保留其他未失效的调用以实现多态内联缓存,并将它们与此调用组合以形成其最终目标。- 参数:
-
guardedInvocation
- 调用站点应将其合并到其目标方法句柄中的受保护调用。 -
relinkAndInvoke
- 一个重新链接和调用方法句柄。这是一个与调用站点的方法类型匹配的方法句柄,由DynamicLinker
作为回调提供。当调用站点无法使用传递的参数调用其目标时,应使用此回退方法。当调用时,它将尝试为调用获取适当的目标GuardedInvocation
,然后调用RelinkableCallSite.relink(GuardedInvocation, MethodHandle)
或RelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)
,最后调用目标。
-
resetAndRelink
从接口复制的描述:RelinkableCallSite
每次调用站点重新链接时,动态链接器都会调用此方法 并且 链接器希望调用站点丢弃任何先前的链接状态(这与RelinkableCallSite.relink(GuardedInvocation, MethodHandle)
的区别在于)。它将传递一个GuardedInvocation
,调用站点应使用它来构建其新的目标方法句柄。调用此方法时,不建议调用站点保留任何先前的状态,应仅链接当前调用。- 参数:
-
guardedInvocation
- 调用站点应使用它来构建其目标方法句柄的受保护调用。 -
relinkAndInvoke
- 一个重新链接和调用方法句柄。这是一个与调用站点的方法类型匹配的方法句柄,由DynamicLinker
作为回调提供。当调用站点无法使用传递的参数调用其目标时,应使用此回退方法。当调用时,它将尝试为调用获取适当的目标GuardedInvocation
,然后调用RelinkableCallSite.relink(GuardedInvocation, MethodHandle)
或RelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)
,最后调用目标。
-