MethodHandles.ExplicitCastArguments(MethodHandle, MethodType) メソッド

定義

ペアごとの引数と戻り値の型変換によって、指定されたメソッド ハンドルの型を新しい型に適合させるメソッド ハンドルを生成します。

[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

パラメーター

target
MethodHandle

引数の再入力後に呼び出すメソッド ハンドル

newType
MethodType

新しいメソッド ハンドルの予期される型

戻り値

必要な引数変換を実行した後にターゲットにデリゲートし、必要な戻り値の変換を配置するメソッド ハンドル

属性

注釈

ペアごとの引数と戻り値の型変換によって、指定されたメソッド ハンドルの型を新しい型に適合させるメソッド ハンドルを生成します。 元の型と新しい型は、同じ数の引数を持つ必要があります。 結果のメソッド ハンドルは、目的の新しい型と等しい型を報告することが保証されます。

元の型と新しい型が等しい場合は、target を返します。

の場合と同じ変換が許可 MethodHandle#asType MethodHandle.asTypeされ、それらの変換が失敗した場合にもいくつかの追加の変換が適用されます。 特定の型 em T0</em>、<em>T1</em>、可能であれば、asType<次のいずれかの変換が適用されます。ul><li>em>T0</em> と <em>T1/em が参照であり<、em>T1<</em>> がインターフェイス型の場合<、em T0</em> 型><の値はキャストなしで em>T1</em> として<渡されます。>< (このインターフェイスの処理は、バイトコード検証ツールの使用に従います)。<李>em T0</em> がブール値で、<em>T1</em> が別のプリミティブである場合、ブール値はバイト値に変換され、true の場合は 1、false の場合<は 0 に変換>されます。 (この処理は、バイトコード検証ツールの使用に従います)。<李>em T1</em> がブール値で、<em>T0</em> が別のプリミティブである場合<、<em>T0</em> は Java キャスト変換 (JLS 5.5) を介してバイトに変換され、 (x & 1) != 0のように結果の下位ビットがテスト>されます。 <li>em T0</em> と <em>T1</em> がブール値以外のプリミティブである場合<は、Java キャスト変換 (JLS 5.5)>が適用されます。 (具体的には、<em>T0</em> は拡大または縮小<によって em>T1</em> に<変換されます。li>em T0</em> が参照であり、<em>T1</em> プリミティブである場合<、アンボックス化変換が実行時に適用され、その後にプリミティブ値に Java キャスト変換 (JLS 5.5) が続き、下位ビットをテストしてバイトからブール値への変換が行>われる可能性があります。 <li>em>T0</em> が参照であり、<em>T1</em> がプリミティブであり、実行時に参照が null の場合、ゼロ値<が導入されます。 </ul>

の Java ドキュメント java.lang.invoke.MethodHandles.explicitCastArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象