CallSite Klasse

Definition

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

[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
Vererbung
CallSite
Abgeleitet
Attribute

Hinweise

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird. Eine invokedynamic Anweisung, die mit einer CallSite verknüpft ist, delegiert alle Aufrufe an das aktuelle Ziel der Website. Ein CallSite kann mehreren invokedynamic Anweisungen zugeordnet sein, oder es kann "frei schwebend" sein und keinem zugeordnet sein. In jedem Fall kann es über ein zugeordnetes Methodenhandle aufgerufen werden, das als #dynamicInvoker dynamischer Aufrufer bezeichnet wird.

CallSite ist eine abstrakte Klasse, die keine direkte Unterklasse durch Benutzer zulässt. Sie verfügt über drei direkte, konkrete Unterklassen, die entweder instanziiert oder unterklassiert werden können. <ul><li>Wenn kein veränderliches Ziel erforderlich ist, kann eine invokedynamic Anweisung über eine ConstantCallSite-Konstantenaufrufwebsite dauerhaft gebunden werden. <li>Wenn ein veränderliches Ziel erforderlich ist, das über eine volatile Variablensemantik verfügt, da Updates des Ziels sofort und zuverlässig von anderen Threads beobachtet werden müssen, kann eine VolatileCallSite-Website für flüchtige Aufrufe verwendet werden. <li Andernfalls>kann, wenn ein veränderliches Ziel erforderlich ist, eine MutableCallSite-Aufrufwebsite verwendet werden. </ul>

Eine nicht konstante Aufrufwebsite kann durch Ändern des Ziels erneut verknüpft/verknüpft> werden<>.< Das neue Ziel muss den gleichen MethodHandle#type()-Typ wie das vorherige Ziel aufweisen. Daher kann eine Aufrufwebsite zwar erneut mit einer Reihe aufeinander folgender Ziele verknüpft werden, aber nicht ihren Typ ändern.

Hier sehen Sie ein Beispiel für die Verwendung von Aufrufwebsites und Bootstrapmethoden, die jede dynamische Aufrufwebsite verknüpft, um ihre Argumente zu drucken: <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-Dokumentation für java.lang.invoke.CallSite.

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

CallSite(IntPtr, JniHandleOwnership)

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

Eigenschaften

Class

Gibt die Laufzeitklasse dieses Objectzurück.

(Geerbt von Object)
Handle

Das Handle für die zugrunde liegende Android-instance.

(Geerbt von Object)
JniIdentityHashCode

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)
JniPeerMembers

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

PeerReference

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)
Target

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

ThresholdClass

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

ThresholdType

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

Methoden

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Dispose()

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)
Dispose(Boolean)

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)
DynamicInvoker()

Erzeugt ein Methodenhandle, das einer aufrufdynamischen Anweisung entspricht, die mit dieser Aufrufwebsite verknüpft wurde.

Equals(Object)

Gibt an, ob ein anderes Objekt "gleich" diesem objekt ist.

(Geerbt von Object)
GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection feststellt, dass keine Verweise mehr auf das Objekt vorhanden sind.

(Geerbt von Object)
Notify()

Aktiviert einen einzelnen Thread, der auf den Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf den Monitor dieses Objekts warten.

(Geerbt von Object)
SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
ToArray<T>()

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
Type()

Gibt den Typ des Ziels dieser Aufrufwebsite zurück.

UnregisterFromRuntime()

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert ist, in der Regel durch <>Benachrichtigung</em> oder <em>interrupted</em>.

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert ist, in der Regel durch>< Benachrichtigung</em> oder <em>interrupted</em>, oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert ist, in der Regel durch>< Benachrichtigung</em> oder <em>interrupted</em>, oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IJavaPeerable.Disposed()

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)
IJavaPeerable.Finalized()

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine Typkonvertierung mit Überprüfung der Android-Laufzeit aus.

JavaCast<TResult>(IJavaObject)

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

GetJniTypeName(IJavaPeerable)

Ein CallSite ist ein Halter für eine Variable MethodHandle, die als ihre targetbezeichnet wird.

Gilt für: