- java.lang.Object
-
- jdk.dynalink.linker.support.Guards
-
public final class Guards extends Object
MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle)の一般的なガードを作成し、そのメソッド・タイプを調整するためのユーティリティ・メソッド。
-
-
メソッドのサマリー
すべてのメソッド 静的メソッド 具象メソッド 修飾子と型 メソッド 説明 static MethodHandleasType(MethodHandle test, MethodType type)ガードとして使用することを意図したメソッド・ハンドルを取得し、要求された型に適応させますが、booleanを返します。static MethodHandleasType(LinkerServices linkerServices, MethodHandle test, MethodType type)ガードとして使用することを意図したメソッド・ハンドルを取得し、要求された型に適応させますが、booleanを返します。static MethodHandlegetClassGuard(Class<?> clazz)正確な特定のクラスであるという唯一の引数をテストするガード・メソッドを作成します。static MethodHandlegetIdentityGuard(Object obj)別のオブジェクトと参照的に同一であるという唯一の引数をテストするガード・メソッドを作成します。static MethodHandlegetInstanceOfGuard(Class<?> clazz)特定のクラスのインスタンスであるための唯一の引数をテストするガード・メソッドを作成します。static MethodHandleisArray(int pos, MethodType type)指定された位置の引数がJava配列の場合にtrueを返すメソッド・ハンドルを作成します。static MethodHandleisInstance(Class<?> clazz, int pos, MethodType type)指定された型の引数を持つが、ブール戻り値を持つメソッド・ハンドルを作成します。static MethodHandleisInstance(Class<?> clazz, MethodType type)指定された型の引数を持つが、ブール戻り値を持つメソッド・ハンドルを作成します。static MethodHandleisNotNull()最初の引数がnullでないかどうかをテストするガードを返します。static MethodHandleisNull()最初の引数がnullかどうかをテストするガードを返します。static MethodHandleisOfClass(Class<?> clazz, MethodType type)指定された型の引数を持つが、ブール戻り値を持つガード・メソッド・ハンドルを作成します。
-
-
-
メソッドの詳細
-
isOfClass
public static MethodHandle isOfClass(Class<?> clazz, MethodType type)
指定された型の引数を持つが、ブール戻り値を持つガード・メソッド・ハンドルを作成します。 呼び出されると、最初の引数が指定されたクラス(サブクラスではなくそのクラス)である場合、trueを返します。 引数のrestは無視されます。- パラメータ:
clazz- テストする最初の引数のクラスtype- メソッド・タイプ- 戻り値:
- メソッド・ハンドルは、最初の引数が指定されたクラスのものかどうかをテストします。
-
isInstance
public static MethodHandle isInstance(Class<?> clazz, MethodType type)
指定された型の引数を持つが、ブール戻り値を持つメソッド・ハンドルを作成します。 呼び出されると、最初の引数が指定されたクラスまたはそのサブクラスのインスタンスである場合、trueを返します。 引数のrestは無視されます。- パラメータ:
clazz- テストする最初の引数のクラスtype- メソッド・タイプ- 戻り値:
- メソッド・ハンドルは、最初の引数が指定されたクラスかサブクラスかをテストします。
-
isInstance
public static MethodHandle isInstance(Class<?> clazz, int pos, MethodType type)
指定された型の引数を持つが、ブール戻り値を持つメソッド・ハンドルを作成します。 呼び出されると、n'th引数が指定されたクラスまたはそのサブクラスのインスタンスである場合、trueを返します。 引数のrestは無視されます。- パラメータ:
clazz- テストする最初の引数のクラスpos- テストする引数リスト上の位置type- メソッド・タイプ- 戻り値:
- メソッド・ハンドルは、最初の引数が指定されたクラスかサブクラスかをテストします。
-
isArray
public static MethodHandle isArray(int pos, MethodType type)
指定された位置の引数がJava配列の場合にtrueを返すメソッド・ハンドルを作成します。- パラメータ:
pos- 点灯した引数の位置type- ハンドルのメソッド・タイプ- 戻り値:
- 指定された位置の引数がJava配列である場合、trueを返すメソッド・ハンドル。引数のrestは無視されます。
-
asType
public static MethodHandle asType(MethodHandle test, MethodType type)
ガードとして使用することを意図したメソッド・ハンドルを取得し、要求された型に適応させますが、booleanを返します。MethodHandle.asType(MethodType)を適用して型を変換し、MethodHandles.dropArguments(MethodHandle, int, Class...)を使用してリクエストされた型の演算に一致させます。- パラメータ:
test- テスト・メソッド・ハンドルtype- メソッド・ハンドルを適応させる型- 戻り値:
- 適合メソッド・ハンドル
-
asType
public static MethodHandle asType(LinkerServices linkerServices, MethodHandle test, MethodType type)
ガードとして使用することを意図したメソッド・ハンドルを取得し、要求された型に適応させますが、booleanを返します。LinkerServices.asType(MethodHandle, MethodType)を適用して型を変換し、MethodHandles.dropArguments(MethodHandle, int, Class...)を使用してリクエストされた型の演算に一致させます。- パラメータ:
linkerServices- 型変換に使用するリンカー・サービスtest- テスト・メソッド・ハンドルtype- メソッド・ハンドルを適応させる型- 戻り値:
- 適合メソッド・ハンドル
-
getClassGuard
public static MethodHandle getClassGuard(Class<?> clazz)
正確な特定のクラスであるという唯一の引数をテストするガード・メソッドを作成します。- パラメータ:
clazz- テスト対象のクラス。- 戻り値:
- 希望するガード方式
-
getInstanceOfGuard
public static MethodHandle getInstanceOfGuard(Class<?> clazz)
特定のクラスのインスタンスであるための唯一の引数をテストするガード・メソッドを作成します。- パラメータ:
clazz- テスト対象のクラス。- 戻り値:
- 希望するガード方式
-
getIdentityGuard
public static MethodHandle getIdentityGuard(Object obj)
別のオブジェクトと参照的に同一であるという唯一の引数をテストするガード・メソッドを作成します。- パラメータ:
obj- 参照アイデンティティ・テストとして使用されるオブジェクト- 戻り値:
- 希望するガード方式
-
isNull
public static MethodHandle isNull()
最初の引数がnullかどうかをテストするガードを返します。- 戻り値:
- 最初の引数がnullかどうかをテストするガード。
-
isNotNull
public static MethodHandle isNotNull()
最初の引数がnullでないかどうかをテストするガードを返します。- 戻り値:
- 最初の引数がnullでないかどうかをテストするガード。
-
-