Linguaggio

MethodHandles.Invoker(MethodType) Metodo

Definizione

Produce un handle< di metodo em>invoker speciale</em> che può essere usato per richiamare qualsiasi handle di metodo compatibile con il tipo specificato, come se fosse MethodHandle#invoke invoke.

[Android.Runtime.Register("invoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? Invoker(Java.Lang.Invoke.MethodType? type);
[<Android.Runtime.Register("invoker", "(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member Invoker : Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle

Parametri

type
MethodType

il tipo di destinazione desiderato

Valori restituiti

handle di metodo adatto per richiamare qualsiasi handle di metodo convertibile nel tipo specificato

Attributi

Commenti

Produce un handle< di metodo em>invoker speciale</em> che può essere usato per richiamare qualsiasi handle di metodo compatibile con il tipo specificato, come se fosse MethodHandle#invoke invoke. Il invoker risultante avrà un tipo che è esattamente uguale al tipo desiderato, ad eccezione del fatto che accetterà un argomento iniziale aggiuntivo di tipo MethodHandle.

Prima di richiamare la destinazione, se la destinazione è diversa dal tipo previsto, il invoker applicherà i cast di riferimento in base alle esigenze e ai valori box, unbox o primitive di tipo widen, come se fosse MethodHandle#asType asType. Analogamente, il valore restituito verrà convertito in base alle esigenze. Se la destinazione è un metodo MethodHandle#asVarargsCollector, la conversione dell'arità richiesta verrà eseguita nuovamente come se fosse MethodHandle#asType asType.

Questo metodo equivale al codice seguente (anche se può essere più efficiente): publicLookup().findVirtual(MethodHandle.class, "invoke", type)

<em>Discussion:</em> A MethodType#genericMethodType general method type is one which mentions only Object arguments and return values. Un invoker per un tipo di questo tipo è in grado di chiamare qualsiasi handle di metodo della stessa arità del tipo generale.

<em>(Nota: il metodo invoker non è disponibile tramite l'API Reflection core. Un tentativo di chiamare java.lang.reflect.Method#invoke java.lang.reflect.Method.invoke nel metodo dichiarato invokeExact o invoke genererà un oggetto java.lang.UnsupportedOperationException UnsupportedOperationException.</em>

Questo metodo non genera eccezioni riflettenti o di sicurezza.

per java.lang.invoke.MethodHandles.invoker(java.lang.invoke.MethodType).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a