クラス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
MutableCallSiteとしてのRelinkableCallSiteの基本的な実装。 それはコンストラクタで渡されたCallSiteDescriptorを持ち、initialize(MethodHandle)メソッドの正しい実装を提供します。 サブクラスは、RelinkableCallSite.relink(GuardedInvocation, MethodHandle)およびRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)メソッドを提供する必要があります。
導入されたバージョン:
9
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    新しい抽象再リンク可能コール・サイトを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このコール・サイトの記述子を返します。
    void
    initialize(MethodHandle relinkAndInvoke)
    再リンクおよび呼出しメソッド・ハンドルを設定して、再リンク可能コール・サイトを初期化するために動的リンカーによって呼び出されます。

    クラスで宣言されたメソッド MutableCallSite

    dynamicInvoker, getTarget, setTarget, syncAll
    修飾子と型
    メソッド
    説明
    このコール・サイトにリンクされているinvokedynamic命令と同等のメソッド・ハンドルを生成します。
    コール・サイトのターゲット・メソッドを返しますが、これは、MutableCallSiteの通常のフィールドのように振る舞います。
    void
    このコール・サイトのターゲット・メソッドを通常の変数として更新します。
    static void
    指定された配列内のコール・サイトごとに同期処理を実行しますが、その際、いずれかのコール・サイトのターゲットから以前にロードされたキャッシュ値をすべて破棄することを、ほかのすべてのスレッドに対して強制します。

    クラスで宣言されたメソッド CallSite

    type
    修飾子と型
    メソッド
    説明
    このコール・サイトのターゲットの型を返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。

    インタフェースで宣言されたメソッド RelinkableCallSite

    relink, resetAndRelink
    修飾子と型
    メソッド
    説明
    void
    relink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
    このメソッドは、呼び出しサイトが再リンクされるたびに動的リンカーによって呼び出されます。(例外についてはRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)を参照してください)。
    void
    resetAndRelink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke)
    このメソッドは、コール・サイトが再リンクされるたびにダイナミック・リンカーによって呼び出され、リンカーはコール・サイトが以前のリンケージ・ステート(それはRelinkableCallSite.relink(GuardedInvocation, MethodHandle)とどのように違うのですか?)を破棄することを望みます。
  • コンストラクタの詳細

  • メソッドの詳細

    • getDescriptor

      public CallSiteDescriptor getDescriptor()
      インタフェース: RelinkableCallSiteからコピーされた説明
      このコール・サイトの記述子を返します。
      定義:
      インタフェースRelinkableCallSite内のgetDescriptor
      戻り値:
      このコール・サイトの記述子。
    • initialize

      public void initialize(MethodHandle relinkAndInvoke)
      インタフェース: RelinkableCallSiteからコピーされた説明
      再リンクおよび呼出しメソッド・ハンドルを設定して、再リンク可能コール・サイトを初期化するために動的リンカーによって呼び出されます。 コール・サイトの実装では、このメソッド・ハンドルをCallSite.setTarget(MethodHandle)を使用してターゲットとして設定することになっています。 Relink-and-invokeは、DynamicLinker.link(RelinkableCallSite)によって設定された初期メソッド・ハンドルです。これにより、コール・サイトは、その引数に基づいて最初の呼出しで適切なターゲットに再リンクされ、そのリンクされたターゲットは(したがって、名前)を呼び出されます。 このリンク・プロトコルは、呼び出しサイトが実際の引数で呼び出されるまでリンクを効果的に遅らせるため、リンカーは呼び出しサイトの静的メソッド・タイプだけでなく、それらの引数に基づいて微妙なリンクをディシジョンできます。
      定義:
      インタフェースRelinkableCallSite内のinitialize
      パラメータ:
      relinkAndInvoke - Dynalinkが提供する再リンクおよび呼出しメソッド・ハンドル。