Module jdk.dynalink

Class 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)方法。
  • Constructor Details

  • Method Details

    • getDescriptor

      public CallSiteDescriptor getDescriptor()
      从接口复制的描述: RelinkableCallSite
      返回此调用站点的描述符。
      指定者:
      getDescriptor 在接口 RelinkableCallSite
      返回:
      此调用站点的描述符。
    • initialize

      public void initialize(MethodHandle relinkAndInvoke)
      从接口复制的描述: RelinkableCallSite
      动态链接器调用以通过设置重新链接和调用方法句柄来初始化可重新链接的调用站点。调用站点实现应该使用CallSite.setTarget(MethodHandle)将此方法句柄设置为其目标。重新链接和调用是由DynamicLinker.link(RelinkableCallSite)设置的初始方法句柄,它将导致调用站点在首次调用时基于其参数重新链接到适当的目标,并且然后将调用链接的目标(因此得名)。此链接协议有效地延迟了链接,直到调用站点使用实际参数调用,并因此确保链接器可以根据这些参数而不仅仅是调用站点的静态方法类型做出微妙的链接决策。
      指定者:
      initialize 在接口 RelinkableCallSite
      参数:
      relinkAndInvoke - 由Dynalink提供的重新链接和调用方法句柄。