クラス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
-
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protectedAbstractRelinkableCallSite(CallSiteDescriptor descriptor) 新しい抽象再リンク可能コール・サイトを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明このコール・サイトの記述子を返します。voidinitialize(MethodHandle relinkAndInvoke) 再リンクおよび呼出しメソッド・ハンドルを設定して、再リンク可能コール・サイトを初期化するために動的リンカーによって呼び出されます。クラスで宣言されたメソッド MutableCallSite
dynamicInvoker, getTarget, setTarget, syncAll修飾子と型メソッド説明final MethodHandleこのコール・サイトにリンクされているinvokedynamic命令と同等のメソッド・ハンドルを生成します。final MethodHandleコール・サイトのターゲット・メソッドを返しますが、これは、MutableCallSiteの通常のフィールドのように振る舞います。voidsetTarget(MethodHandle newTarget) このコール・サイトのターゲット・メソッドを通常の変数として更新します。static voidsyncAll(MutableCallSite[] sites) 指定された配列内のコール・サイトごとに同期処理を実行しますが、その際、いずれかのコール・サイトのターゲットから以前にロードされたキャッシュ値をすべて破棄することを、ほかのすべてのスレッドに対して強制します。クラスオブジェクトで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait修飾子と型メソッド説明protected Objectclone()このオブジェクトのコピーを作成して、返します。booleanこのオブジェクトと他のオブジェクトが等しいかどうかを示します。protected voidfinalize()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。最終決定は非推奨であり、将来のリリースで削除される可能性があります。final Class<?> getClass()このObjectの実行時クラスを返します。inthashCode()このオブジェクトに対するハッシュ・コード値を返します。final voidnotify()このオブジェクトのモニターで待機中のスレッドを1つ再開します。final voidこのオブジェクトのモニターで待機中のすべてのスレッドを再開します。toString()オブジェクトの文字列表現を返します。final voidwait()現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。final voidwait(long timeoutMillis) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。final voidwait(long timeoutMillis, int nanos) 現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。インタフェースで宣言されたメソッド RelinkableCallSite
relink, resetAndRelink修飾子と型メソッド説明voidrelink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) このメソッドは、呼び出しサイトが再リンクされるたびに動的リンカーによって呼び出されます。(例外についてはRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)を参照してください)。voidresetAndRelink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) このメソッドは、コール・サイトが再リンクされるたびにダイナミック・リンカーによって呼び出され、リンカーはコール・サイトが以前のリンケージ・ステート(それはRelinkableCallSite.relink(GuardedInvocation, MethodHandle)とどのように違うのですか?)を破棄することを望みます。
-
コンストラクタの詳細
-
AbstractRelinkableCallSite
protected AbstractRelinkableCallSite(CallSiteDescriptor descriptor) 新しい抽象再リンク可能コール・サイトを作成します。- パラメータ:
descriptor-getDescriptor()から返されるこの呼び出しサイトの記述子。 コール・サイトのCallSite.type()は、記述子のCallSiteDescriptor.getMethodType()と等しくなります。- スロー:
NullPointerException-descriptorがNULLの場合。
-
-
メソッドの詳細
-
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が提供する再リンクおよび呼出しメソッド・ハンドル。
-