Lenguaje

CallSite Clase

Definición

es CallSite 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
Derivado
Atributos

Comentarios

es CallSite 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. CallSite Un 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 mediante un sitio de llamada constante ConstantCallSite. <li>Si se requiere un destino mutable que tiene semántica de variables volátiles, ya que las actualizaciones del destino deben ser testigos inmediatamente y confiablemente por otros subprocesos, se puede usar un sitio de llamada volátil VolatileCallSite. <en>caso contrario, si se requiere un destino mutable, se puede usar un sitio de llamada mutableCallSite mutable. </ul>

Un sitio de llamada no constante puede volver a vincularse<></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>

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

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
CallSite(IntPtr, JniHandleOwnership)

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

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 CallSite un titular de una variable MethodHandle, que se denomina .target

(Heredado de JavaObject)
JniPeerMembers

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

PeerReference

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

(Heredado de Object)
Target

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

ThresholdClass

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

ThresholdType

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

Métodos

Nombre Description
Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

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

(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 CallSite un titular de una variable MethodHandle, que se denomina .target

(Heredado de JavaObject)
DynamicInvoker()

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

Equals(Object)

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

(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 CallSite un titular de una variable MethodHandle, que se denomina .target

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

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 CallSite un titular de una variable MethodHandle, que se denomina .target

(Heredado de JavaObject)
IJavaPeerable.Finalized()

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

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

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

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

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

(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 CallSite un titular de una variable MethodHandle, que se denomina .target

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