Condividi tramite


CallSite Classe

Definizione

Un CallSite è un titolare per una variabile MethodHandle, denominata .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
Ereditarietà
CallSite
Derivato
Attributi

Commenti

Un CallSite è un titolare per una variabile MethodHandle, denominata .target Un'istruzione invokedynamic collegata a un CallSite delegato tutte le chiamate alla destinazione corrente del sito. Un CallSite può essere associato a diverse invokedynamic istruzioni oppure può essere "mobile libero", associato a nessuno. In qualsiasi caso, può essere richiamato tramite un handle di metodo associato denominato #dynamicInvoker invoker dinamico.

CallSite è una classe astratta che non consente la sottoclasse diretta da parte degli utenti. Ha tre sottoclassi concrete immediate che possono essere create istanza o sottoclassi. <ul><li>Se non è necessaria una destinazione modificabile, invokedynamic un'istruzione può essere associata definitivamente tramite un sito di chiamata costante ConstantCallSite. <li>Se è necessaria una destinazione modificabile con semantica variabile volatile, perché gli aggiornamenti alla destinazione devono essere immediatamente e in modo affidabile testimoniati da altri thread, può essere usato un sito di chiamata volatile VolatileCallSite. <li>Altrimenti, se è necessaria una destinazione modificabile, può essere usato un sito di chiamata modificabile MutableCallSite. </ul>

Un sito di chiamata non costante può essere <rilinkato></em> modificando la destinazione. La nuova destinazione deve avere lo stesso tipo MethodHandle#type() della destinazione precedente. Pertanto, anche se un sito di chiamata può essere rilinkato a una serie di destinazioni successive, non può modificare il relativo tipo.

Ecco un esempio di uso dei siti di chiamata e dei metodi bootstrap che collega ogni sito di chiamata dinamica per stampare i relativi argomenti: <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>

Documentazione Java per java.lang.invoke.CallSite.

Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .

Costruttori

CallSite(IntPtr, JniHandleOwnership)

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle all'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)
JniPeerMembers

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

PeerReference

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)
Target

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

ThresholdClass

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

ThresholdType

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

Metodi

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Dispose()

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)
Dispose(Boolean)

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)
DynamicInvoker()

Produce un handle di metodo equivalente a un'istruzione invokedynamic collegata a questo sito di chiamata.

Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
GetHashCode()

Restituisce un valore del codice hash per l'oggetto.

(Ereditato da Object)
JavaFinalize()

Chiamato dal Garbage Collector in un oggetto quando Garbage Collection determina che non sono presenti più riferimenti all'oggetto.

(Ereditato da Object)
Notify()

Riattiva un singolo thread in attesa del monitoraggio dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitoraggio dell'oggetto.

(Ereditato da Object)
SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
ToArray<T>()

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)
ToString()

Restituisce una rappresentazione in formato stringa dell'oggetto.

(Ereditato da Object)
Type()

Restituisce il tipo di destinazione del sito di chiamata.

UnregisterFromRuntime()

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)
Wait()

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere eseguendo>una notifica</em o <em interrotto</>em>>.<

(Ereditato da Object)
Wait(Int64)

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64, Int32)

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)
IJavaPeerable.Finalized()

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione dei tipi controllati dal runtime Android.

JavaCast<TResult>(IJavaObject)

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

GetJniTypeName(IJavaPeerable)

Un CallSite è un titolare per una variabile MethodHandle, denominata .target

Si applica a