Lenguaje

MutableCallSite Clase

Definición

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

[Android.Runtime.Register("java/lang/invoke/MutableCallSite", ApiSince=26, DoNotGenerateAcw=true)]
public class MutableCallSite : Java.Lang.Invoke.CallSite
[<Android.Runtime.Register("java/lang/invoke/MutableCallSite", ApiSince=26, DoNotGenerateAcw=true)>]
type MutableCallSite = class
    inherit CallSite
Herencia
MutableCallSite
Atributos

Comentarios

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal. Una invokedynamic instrucción vinculada a un MutableCallSite delegado de todas las llamadas al destino actual del sitio. El invocador dinámico CallSite#dynamicInvoker de un sitio de llamada mutable también delega cada llamada al destino actual del sitio.

Este es un ejemplo de un sitio de llamada mutable que introduce una variable de estado en una cadena de identificadores de método. <-- JavaDocExamplesTest.testMutableCallSite --><blockquote>

{@code
            MutableCallSite name = new MutableCallSite(MethodType.methodType(String.class));
            MethodHandle MH_name = name.dynamicInvoker();
            MethodType MT_str1 = MethodType.methodType(String.class);
            MethodHandle MH_upcase = MethodHandles.lookup()
                .findVirtual(String.class, "toUpperCase", MT_str1);
            MethodHandle worker1 = MethodHandles.filterReturnValue(MH_name, MH_upcase);
            name.setTarget(MethodHandles.constant(String.class, "Rocky"));
            assertEquals("ROCKY", (String) worker1.invokeExact());
            name.setTarget(MethodHandles.constant(String.class, "Fred"));
            assertEquals("FRED", (String) worker1.invokeExact());
            // (mutation can be continued indefinitely)
            }

</blockquote>

El mismo sitio de llamada se puede usar en varios lugares a la vez. <blockquote>

{@code
            MethodType MT_str2 = MethodType.methodType(String.class, String.class);
            MethodHandle MH_cat = lookup().findVirtual(String.class,
              "concat", methodType(String.class, String.class));
            MethodHandle MH_dear = MethodHandles.insertArguments(MH_cat, 1, ", dear?");
            MethodHandle worker2 = MethodHandles.filterReturnValue(MH_name, MH_dear);
            assertEquals("Fred, dear?", (String) worker2.invokeExact());
            name.setTarget(MethodHandles.constant(String.class, "Wilma"));
            assertEquals("WILMA", (String) worker1.invokeExact());
            assertEquals("Wilma, dear?", (String) worker2.invokeExact());
            }

</blockquote>

<em>Non-synchronization of target values:</em> A write to a mutable call site's target does not force other threads to become aware of the updated value. Los subprocesos que no realizan acciones de sincronización adecuadas en relación con el sitio de llamada actualizado pueden almacenar en caché el valor de destino anterior y retrasar su uso del nuevo valor de destino indefinidamente. (Esto es una consecuencia normal del modelo de memoria de Java que se aplica a los campos de objeto).

En el caso de los valores de destino que se actualizarán con frecuencia, considere la posibilidad de usar un sitio de llamada volátil VolatileCallSite en su lugar.

Java documentación para java.lang.invoke.MutableCallSite.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Constructores

Nombre Description
MutableCallSite(IntPtr, JniHandleOwnership)

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

MutableCallSite(MethodHandle)

Crea un objeto de sitio de llamada con un identificador de método de destino inicial.

MutableCallSite(MethodType)

Crea un objeto de sitio de llamada en blanco con el tipo de método especificado.

Propiedades

Nombre Description
Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

(Heredado de JavaObject)
JniPeerMembers

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(Heredado de Object)
Target

Devuelve el método de destino del sitio de llamada, que se comporta como un campo normal de MutableCallSite. -o bien- Actualiza el método de destino de este sitio de llamada, como una variable normal.

ThresholdClass

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

ThresholdType

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

Métodos

Nombre Description
Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

(Heredado de JavaObject)
Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

(Heredado de JavaObject)
DynamicInvoker()

Genera un identificador de método equivalente a una invokedynamic instrucción vinculada a este sitio de llamada.

Equals(Object)

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

(Heredado de JavaObject)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
GetHashCode()

Devuelve un valor de código hash para el objeto .

(Heredado de Object)
JavaFinalize()
Obsoletos.

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

(Heredado de JavaObject)
ToArray<T>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto .

(Heredado de Object)
Type()

Devuelve el tipo de destino de este sitio de llamada.

(Heredado de CallSite)
UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

(Heredado de JavaObject)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Es MutableCallSite un CallSite cuya variable de destino se comporta como un campo normal.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a