CallSite Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
Propiedades
| Nombre | Description |
|---|---|
| Class |
Devuelve la clase en tiempo de ejecución de este |
| 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 |
| JniPeerMembers |
es |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| Target |
es |
| ThresholdClass |
es |
| ThresholdType |
es |
Métodos
| Nombre | Description |
|---|---|
| Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
es |
| 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 |
| 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 |
| 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 |
| 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 |
| IJavaPeerable.Finalized() |
es |
| IJavaPeerable.JniObjectReferenceControlBlock |
es |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
es |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
es |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
es |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
es |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |