MutableCallSite Classe

Definição

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

[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
Herança
MutableCallSite
Atributos

Comentários

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum. Uma invokedynamic instrução vinculada a um MutableCallSite representante de todas as chamadas para o destino atual do site. O invocador dinâmico CallSite#dynamicInvoker de um site de chamada mutável também delega cada chamada para o destino atual do site.

Aqui está um exemplo de um site de chamada mutável que introduz uma variável de estado em uma cadeia 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>

O mesmo site de chamada pode ser usado em vários locais ao mesmo tempo. <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>Não sincronização de valores de destino:</em> Uma gravação no destino de um site de chamada mutável não força outros threads a se tornarem cientes do valor atualizado. Threads que não executam ações de sincronização adequadas em relação ao site de chamada atualizado podem armazenar em cache o valor de destino antigo e atrasar o uso do novo valor de destino indefinidamente. (Essa é uma consequência normal do modelo de memória Java, conforme aplicado aos campos de objeto.)

Para valores de destino que serão atualizados com frequência, considere usar um site de chamada volátil VolatileCallSite.

Java documentação para java.lang.invoke.MutableCallSite.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Construtores

Nome Description
MutableCallSite(IntPtr, JniHandleOwnership)

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

MutableCallSite(MethodHandle)

Cria um objeto de site de chamada com um identificador de método de destino inicial.

MutableCallSite(MethodType)

Cria um objeto de site de chamada em branco com o tipo de método fornecido.

Propriedades

Nome Description
Class

Retorna a classe de runtime deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade.

(Herdado de Object)
JniManagedPeerState

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

(Herdado de JavaObject)
JniPeerMembers

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

PeerReference

Obtém a referência de objeto JNI para este par Java.

(Herdado de Object)
Target

Retorna o método de destino do site de chamada, que se comporta como um campo normal do MutableCallSite. -ou- Atualiza o método de destino deste site de chamada, como uma variável normal.

ThresholdClass

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

ThresholdType

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

Métodos

Nome Description
Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

(Herdado de JavaObject)
Dispose()

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
Dispose(Boolean)

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
DisposeUnlessReferenced()

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

(Herdado de JavaObject)
DynamicInvoker()

Produz um identificador de método equivalente a uma instrução invokedynamic vinculada a este site de chamada.

Equals(Object)

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

(Herdado de JavaObject)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Notify()

Ativa um único thread que está aguardando no monitor deste objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

(Herdado de JavaObject)
ToArray<T>()

Cria uma matriz gerenciada com base nesse wrapper de matriz Java.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
Type()

Retorna o tipo de destino deste site de chamada.

(Herdado de CallSite)
UnregisterFromRuntime()

Cancela o registro desse par Java do runtime de interoperabilidade.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

(Herdado de JavaObject)
IJavaPeerable.Finalized()

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

(Herdado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

(Herdado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

(Herdado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

(Herdado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

(Herdado de JavaObject)

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo marcada por runtime do Android.

JavaCast<TResult>(IJavaObject)

A MutableCallSite é uma CallSite variável de destino que se comporta como um campo comum.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a