- java.lang.Object
-
- java.lang.invoke.CallSite
-
- java.lang.invoke.MutableCallSite
-
- jdk.dynalink.support.AbstractRelinkableCallSite
-
- All Implemented Interfaces:
-
RelinkableCallSite
- 已知直接子类:
-
ChainedCallSite
,SimpleRelinkableCallSite
public abstract class AbstractRelinkableCallSite extends MutableCallSite implements RelinkableCallSite
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
AbstractRelinkableCallSite(CallSiteDescriptor descriptor)
创建一个新的抽象可重新链接的呼叫站点。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 CallSiteDescriptor
getDescriptor()
返回此调用站点的描述符。void
initialize(MethodHandle relinkAndInvoke)
由动态链接器调用,通过设置relink-and-invoke方法句柄来初始化可重新链接的调用站点。-
Methods inherited from class java.lang.invoke.MutableCallSite
dynamicInvoker, getTarget, setTarget, syncAll
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface jdk.dynalink.RelinkableCallSite
relink, resetAndRelink
-
-
-
-
构造方法详细信息
-
AbstractRelinkableCallSite
protected AbstractRelinkableCallSite(CallSiteDescriptor descriptor)
创建一个新的抽象可重新链接的呼叫站点。- 参数
-
descriptor
- 将从getDescriptor()
返回的此呼叫站点的描述符。 呼叫站点的CallSite.type()
将等于描述符的CallSiteDescriptor.getMethodType()
。 - 异常
-
NullPointerException
- 如果descriptor
为空。
-
-
方法详细信息
-
getDescriptor
public CallSiteDescriptor getDescriptor()
描述从接口RelinkableCallSite
复制返回此调用站点的描述符。- Specified by:
-
getDescriptor
在接口RelinkableCallSite
- 结果
- 该呼叫站点的描述符。
-
initialize
public void initialize(MethodHandle relinkAndInvoke)
说明从接口RelinkableCallSite
复制由动态链接器调用,通过设置relink-and-invoke方法句柄来初始化可重新链接的调用站点。 呼叫站点实现应该使用CallSite.setTarget(MethodHandle)
将此方法句柄设置为其目标。 Relink-and-invoke是由DynamicLinker.link(RelinkableCallSite)
设置的初始方法句柄,这将使调用站点基于其参数在其第一次调用时重新链接到适当的目标,然后将调用该链接的目标(因此名称)。 此链接协议有效地延迟链接,直到调用站点被实际参数调用,从而确保链接器可以基于这些参数进行细微的链接决策,而不仅仅是调用站点的静态方法类型。- Specified by:
-
initialize
在接口RelinkableCallSite
- 参数
-
relinkAndInvoke
- Dynalink提供的重新链接和调用方法句柄。
-
-