CallSite Clase

Definición

Un CallSite es un titular de una variable MethodHandle, que se denomina 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
Herencia
CallSite
Derivado
Atributos

Comentarios

Un CallSite es un titular de una variable MethodHandle, que se denomina target. Una invokedynamic instrucción vinculada a un CallSite delegado de todas las llamadas al destino actual del sitio. Un CallSite puede estar asociado a varias invokedynamic instrucciones, o puede ser "flotante libre", asociado a ninguno. En cualquier caso, se puede invocar a través de un identificador de método asociado denominado su #dynamicInvoker invocador dinámico.

CallSite es una clase abstracta que no permite la subclases directa por parte de los usuarios. Tiene tres subclases concretas inmediatas que se pueden crear instancias o subclases. <ul><li>Si no se requiere un destino mutable, una invokedynamic instrucción puede estar enlazada permanentemente por medio de un sitio de llamada constante ConstantCallSite. <li>Si se requiere un destino mutable que tiene semántica variable volátil, ya que las actualizaciones del destino deben ser testigos inmediatamente y confiable por otros subprocesos, se puede usar un sitio de llamada volátil VolatileCallSite. <li>De lo contrario, si se requiere un destino mutable, se puede usar un sitio de llamada mutableCallSite mutable. </ul>

Un sitio de llamada no constante puede ser <revinculado<>/em> cambiando su destino. El nuevo destino debe tener el mismo tipo MethodHandle#type() que el destino anterior. Por lo tanto, aunque un sitio de llamada se puede volver a vincular a una serie de destinos sucesivos, no puede cambiar su tipo.

Este es un ejemplo de uso de sitios de llamada y métodos de arranque que vinculan cada sitio de llamada dinámico para imprimir sus argumentos: <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>

Documentación de Java para java.lang.invoke.CallSite.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código Project y que se usan según los términos Creative Commons 2.5 Attribution License.

Constructores

CallSite(IntPtr, JniHandleOwnership)

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

Propiedades

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

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(Heredado de Object)
JniPeerMembers

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

PeerReference

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(Heredado de Object)
Target

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

ThresholdClass

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

ThresholdType

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

Métodos

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Dispose()

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(Heredado de Object)
Dispose(Boolean)

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(Heredado de Object)
DynamicInvoker()

Genera un identificador de método equivalente a una instrucción invokedynamic que se ha vinculado a este sitio de llamada.

Equals(Object)

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

(Heredado de Object)
GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
JavaFinalize()

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)
ToArray<T>()

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(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.

UnregisterFromRuntime()

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(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)

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, 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)

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(Heredado de Object)
IJavaPeerable.Finalized()

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

GetJniTypeName(IJavaPeerable)

Un CallSite es un titular de una variable MethodHandle, que se denomina target.

Se aplica a