CallSite クラス

定義

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

[Android.Runtime.Register("java/lang/invoke/CallSite", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class CallSite : Java.Lang.Object
[<Android.Runtime.Register("java/lang/invoke/CallSite", ApiSince=26, DoNotGenerateAcw=true)>]
type CallSite = class
    inherit Object
継承
CallSite
派生
属性

注釈

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。 invokedynamicにリンクされた命令は、CallSiteサイトの現在のターゲットへのすべての呼び出しを委任します。 は CallSite 複数 invokedynamic の命令に関連付けられている場合があります。または、"フリー フローティング" であっても、何も関連付けられていない場合があります。 いずれの場合も、その #dynamicInvoker 動的呼び出し子と呼ばれる関連付けられたメソッド ハンドルを介して呼び出すことができます。

CallSite は、ユーザーによる直接サブクラス化を許可しない抽象クラスです。 インスタンス化またはサブクラス化できる 3 つの即時の具象サブクラスがあります。 <ul><li>変更可能なターゲットが必要ない場合、 invokedynamic 命令は ConstantCallSite 定数呼び出しサイトによって永続的にバインドされる可能性があります。 <li>揮発性変数セマンティクスを持つ変更可能なターゲットが必要な場合、ターゲットへの更新は他のスレッドによって直ちに確実に監視される必要があるため、VolatileCallSite 揮発性呼び出しサイトを使用できます。 <li>それ以外の場合は、変更可能なターゲットが必要な場合は、MutableCallSite 変更可能な呼び出しサイトを使用できます。 </ul>

非定数呼び出しサイトは、 <ターゲットを>変更することによって再リンク</em> することができます。 新しいターゲットには、前のターゲットと同じ MethodHandle#type() 型が必要です。 したがって、呼び出しサイトは連続する一連のターゲットに再リンクできますが、その種類を変更することはできません。

すべての動的呼び出しサイトをリンクして引数を出力する呼び出しサイトとブートストラップ メソッドの使用例を次に示します。 <blockquote>

{@code
            static void test() throws Throwable {
                // THE FOLLOWING LINE IS PSEUDOCODE FOR A JVM INSTRUCTION
                InvokeDynamic[#bootstrapDynamic].baz("baz arg", 2, 3.14);
            }
            private static void printArgs(Object... args) {
              System.out.println(java.util.Arrays.deepToString(args));
            }
            private static final MethodHandle printArgs;
            static {
              MethodHandles.Lookup lookup = MethodHandles.lookup();
              Class thisClass = lookup.lookupClass();  // (who am I?)
              printArgs = lookup.findStatic(thisClass,
                  "printArgs", MethodType.methodType(void.class, Object[].class));
            }
            private static CallSite bootstrapDynamic(MethodHandles.Lookup caller, String name, MethodType type) {
              // ignore caller and name, but match the type:
              return new ConstantCallSite(printArgs.asType(type));
            }
            }

</blockquote>

の Java ドキュメント java.lang.invoke.CallSite

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

CallSite(IntPtr, JniHandleOwnership)

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

プロパティ

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)
JniPeerMembers

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

PeerReference

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)
Target

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

ThresholdClass

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

ThresholdType

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

メソッド

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Dispose()

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)
Dispose(Boolean)

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)
DynamicInvoker()

この呼び出しサイトにリンクされている invokedynamic 命令と同等のメソッド ハンドルを生成します。

Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
JavaFinalize()

ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。

(継承元 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
ToArray<T>()

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
Type()

この呼び出しサイトのターゲットの種類を返します。

UnregisterFromRuntime()

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。

(継承元 Object)
Wait(Int64)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

IJavaPeerable.Disposed()

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)
IJavaPeerable.Finalized()

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

GetJniTypeName(IJavaPeerable)

CallSiteは、変数 MethodHandleのホルダーです。これは、その targetと呼ばれます。

適用対象