Langage

CallSite Classe

Définition

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son 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
Héritage
Dérivé
Attributs

Remarques

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target. Instruction invokedynamic liée à un CallSite délégué tous les appels à la cible actuelle du site. Un CallSite peut être associé à plusieurs invokedynamic instructions, ou il peut être « flottant libre », associé à aucun. Dans tous les cas, il peut être appelé par le biais d’un handle de méthode associé appelé son appelant dynamique #dynamicInvoker.

CallSite est une classe abstraite qui n’autorise pas la sous-classe directe par les utilisateurs. Il a trois sous-classes immédiates et concrètes qui peuvent être instanciées ou sous-classifiées. <ul><li>Si une cible mutable n’est pas requise, une invokedynamic instruction peut être liée définitivement par le biais d’un site d’appel constant ConstantCallSite. <li>Si une cible mutable est requise, qui a une sémantique de variable volatile, car les mises à jour de la cible doivent être immédiatement et de manière fiable témoin par d’autres threads, un site d’appel volatile VolatileCallSite peut être utilisé. <dans>le cas contraire, si une cible mutable est requise, un site d’appel mutable MutableCallSite peut être utilisé. </ul>

Un site d’appel non constant peut être <>relinké</em> en modifiant sa cible. La nouvelle cible doit avoir le même type MethodHandle#type() que la cible précédente. Par conséquent, bien qu’un site d’appel puisse être relinké à une série de cibles successives, il ne peut pas modifier son type.

Voici un exemple d’utilisation de sites d’appel et de méthodes d’amorçage qui lie chaque site d’appel dynamique pour imprimer ses arguments : <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 documentation pour java.lang.invoke.CallSite.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Constructeurs

Nom Description
CallSite(IntPtr, JniHandleOwnership)

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

Propriétés

Nom Description
Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
JniIdentityHashCode

Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité.

(Hérité de Object)
JniManagedPeerState

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

(Hérité de JavaObject)
JniPeerMembers

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

PeerReference

Obtient la référence d’objet JNI pour cet homologue Java.

(Hérité de Object)
Target

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

ThresholdClass

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

ThresholdType

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

Méthodes

Nom Description
Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

(Hérité de JavaObject)
Dispose()

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
Dispose(Boolean)

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
DisposeUnlessReferenced()

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

(Hérité de JavaObject)
DynamicInvoker()

Produit un handle de méthode équivalent à une instruction invokedynamic qui a été liée à ce site d’appel.

Equals(Object)

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

(Hérité de JavaObject)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
GetHashCode()

Retourne une valeur de code de hachage pour l’objet.

(Hérité de Object)
JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

(Hérité de JavaObject)
ToArray<T>()

Crée un tableau managé à partir de ce wrapper de tableau Java.

(Hérité de Object)
ToString()

Retourne une représentation sous forme de chaîne de l’objet.

(Hérité de Object)
Type()

Retourne le type de la cible de ce site d’appel.

UnregisterFromRuntime()

Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IJavaPeerable.Disposed()

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

(Hérité de JavaObject)
IJavaPeerable.Finalized()

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

(Hérité de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

(Hérité de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

(Hérité de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

(Hérité de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

(Hérité de JavaObject)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

A CallSite est un titulaire pour une variable MethodHandle, qui est appelée son target.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à