MethodHandles.Lookup.Bind(Object, String, MethodType) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Produce un handle di metodo con associazione anticipata per un metodo non statico.
[Android.Runtime.Register("bind", "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public Java.Lang.Invoke.MethodHandle Bind(Java.Lang.Object receiver, string name, Java.Lang.Invoke.MethodType type);
[<Android.Runtime.Register("bind", "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
member this.Bind : Java.Lang.Object * string * Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle
Parametri
- receiver
- Object
oggetto da cui si accede al metodo
- name
- String
nome del metodo
- type
- MethodType
il tipo del metodo, con l'argomento ricevitore omesso
Valori restituiti
handle del metodo desiderato
- Attributi
Commenti
Produce un handle di metodo con associazione anticipata per un metodo non statico. Il ricevitore deve avere un supertipo defc in cui un metodo con il nome e il tipo specificati è accessibile alla classe di ricerca. Il metodo e tutti i relativi tipi di argomento devono essere accessibili all'oggetto di ricerca. Il tipo dell'handle del metodo sarà quello del metodo, senza l'inserimento di un parametro ricevitore aggiuntivo. Il ricevitore specificato verrà associato nell'handle del metodo, in modo che ogni chiamata all'handle del metodo richiami il metodo richiesto nel ricevitore specificato.
L'handle del metodo restituito avrà l'arità della variabile MethodHandle#asVarargsCollector se e solo se il bit del modificatore di arity della variabile del metodo (0x0080) è impostato <em>e</em> l'argomento matrice finale non è l'unico argomento. Se l'argomento matrice finale è l'unico argomento, il valore del ricevitore specificato verrà associato.
Equivale al codice seguente: <blockquote>
{@code
import static java.lang.invoke.MethodHandles.*;
import static java.lang.invoke.MethodType.*;
...
MethodHandle mh0 = lookup().findVirtual(defc, name, type);
MethodHandle mh1 = mh0.bindTo(receiver);
MethodType mt1 = mh1.type();
if (mh0.isVarargsCollector())
mh1 = mh1.asVarargsCollector(mt1.parameterType(mt1.parameterCount()-1));
return mh1;
}
</blockquote> dove defc è receiver.getClass() o un super tipo di tale classe, in cui il metodo richiesto è accessibile alla classe di ricerca. Si noti che bindTo non mantiene l'arità delle variabili.
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.