MethodHandles.ExplicitCastArguments(MethodHandle, 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 che adatta il tipo dell'handle di metodo specificato a un nuovo tipo in base all'argomento pairwise e alla conversione del tipo restituito.
[Android.Runtime.Register("explicitCastArguments", "(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)]
public static Java.Lang.Invoke.MethodHandle? ExplicitCastArguments(Java.Lang.Invoke.MethodHandle? target, Java.Lang.Invoke.MethodType? newType);
[<Android.Runtime.Register("explicitCastArguments", "(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;", "", ApiSince=26)>]
static member ExplicitCastArguments : Java.Lang.Invoke.MethodHandle * Java.Lang.Invoke.MethodType -> Java.Lang.Invoke.MethodHandle
Parametri
- target
- MethodHandle
handle del metodo da richiamare dopo che gli argomenti vengono ritipati
- newType
- MethodType
tipo previsto del nuovo handle di metodo
Valori restituiti
handle di metodo che delega alla destinazione dopo l'esecuzione di tutte le conversioni di argomenti necessarie e dispone per le conversioni di valori restituiti necessarie
- Attributi
Commenti
Produce un handle di metodo che adatta il tipo dell'handle di metodo specificato a un nuovo tipo in base all'argomento pairwise e alla conversione del tipo restituito. Il tipo originale e il nuovo tipo devono avere lo stesso numero di argomenti. L'handle del metodo risultante è garantito per segnalare un tipo uguale al nuovo tipo desiderato.
Se il tipo originale e il nuovo tipo sono uguali, restituisce la destinazione.
Le stesse conversioni sono consentite come per MethodHandle#asType MethodHandle.asTypee alcune conversioni aggiuntive vengono applicate anche se tali conversioni hanno esito negativo. I tipi <em>T0</em>, em>T1</em>, <una delle conversioni seguenti viene applicata, se possibile, prima o invece di qualsiasi conversione eseguita da asType: <ul><li>If <em>T0</em> e <em>T1/em> sono riferimenti e <em>T1</em> è un tipo di interfaccia, quindi il valore di tipo <em>T0</em viene passato come <em>T1<</em>> senza cast. Questo trattamento delle interfacce segue l'utilizzo del verificatore di bytecode. <li>Se <em>T0</em> è booleano e <em>T1</em> è un'altra primitiva, il valore booleano viene convertito in un valore di byte, 1 per true, 0 per false. (Questo trattamento segue l'utilizzo del verificatore di bytecode. <li>Se <em>T1</em> è booleano e <em>T0</em> è un'altra primitiva, <em>T0</em> viene convertito in byte tramite conversione di cast Java (JLS 5.5) e viene testato il bit di ordine basso del risultato, come se fosse (x & 1) != 0.
<li>Se <em>T0</em> e <em>T1</em> sono primitive diverse dal booleano, viene applicata una conversione di cast Java (JLS 5.5). In particolare, <em>T0</em> convertirà <in em>T1</em> espandendo e/o restringendo. <li>Se <em>T0</em> è un riferimento e <em>T1</em> una primitiva, in fase di esecuzione verrà applicata una conversione unboxing, possibilmente seguita da una conversione di cast Java (JLS 5.5) sul valore primitivo, possibilmente seguita da una conversione da byte a boolean testando il bit in ordine basso.
<li>Se <em>T0</em> è un riferimento e <em>T1</em> una primitiva e se il riferimento è Null in fase di esecuzione, viene introdotto un valore zero.
</ul>
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.