java.lang.Object
jdk.dynalink.linker.support.Guards
public final class Guards extends Object
MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle)
の一般的なガードを作成し、そのメソッド・タイプを調整するためのユーティリティ・メソッド。- 導入されたバージョン:
- 9
-
メソッドのサマリー
修飾子と型メソッド説明static MethodHandle
asType
(MethodHandle test, MethodType type) ガードとして使用するメソッド・ハンドルを取得し、リクエストされた型に適応しますが、booleanを返します。static MethodHandle
asType
(LinkerServices linkerServices, MethodHandle test, MethodType type) ガードとして使用するメソッド・ハンドルを取得し、リクエストされた型に適応しますが、booleanを返します。static MethodHandle
getClassGuard
(Class<?> clazz) 特定のクラスであるための唯一の引数をテストするguardメソッドを作成します。static MethodHandle
getIdentityGuard
(Object obj) 他のオブジェクトと同じ参照を持つために唯一の引数をテストするガード・メソッドを作成static MethodHandle
getInstanceOfGuard
(Class<?> clazz) 特定のクラスのインスタンスであるための唯一の引数をテストするガード・メソッドを作成します。static MethodHandle
isArray
(int pos, MethodType type) 指定された位置の引数がJava配列である場合にtrueを返すメソッド・ハンドルを作成します。static MethodHandle
isInstance
(Class<?> clazz, int pos, MethodType type) 指定された型の引数を持つメソッド・ハンドルを作成しますが、ブール戻り値を使用します。static MethodHandle
isInstance
(Class<?> clazz, MethodType type) 指定された型の引数を持つメソッド・ハンドルを作成しますが、ブール戻り値を使用します。static MethodHandle
最初の引数がnullでないかどうかをテストするガードを返します。static MethodHandle
isNull()
最初の引数がnullかどうかをテストするガードを返します。static MethodHandle
isOfClass
(Class<?> clazz, MethodType type) 指定された型の引数を持つガード・メソッド・ハンドルを作成しますが、ブール戻り値を使用します。
-
メソッドの詳細
-
isOfClass
public static MethodHandle isOfClass(Class<?> clazz, MethodType type) 指定された型の引数を持つガード・メソッド・ハンドルを作成しますが、ブール戻り値を使用します。 呼び出されると、最初の引数が指定されたクラス(正確には、サブクラスではなく)のものである場合、trueを返します。 残りの引数は無視されます。- パラメータ:
clazz
- テストする最初の引数のクラスtype
- メソッドの型- 戻り値:
- メソッド・ハンドルは、最初の引数が指定されたクラスのものかどうかをテストします。
-
isInstance
public static MethodHandle isInstance(Class<?> clazz, MethodType type) 指定された型の引数を持つメソッド・ハンドルを作成しますが、ブール戻り値を使用します。 呼び出されると、最初の引数が指定されたクラスまたはそのサブクラスのインスタンスである場合、trueを返します。 残りの引数は無視されます。- パラメータ:
clazz
- テストする最初の引数のクラスtype
- メソッドの型- 戻り値:
- メソッド・ハンドルは、最初の引数が指定されたクラスかサブクラスかをテストします。
-
isInstance
public static MethodHandle isInstance(Class<?> clazz, int pos, MethodType type) 指定された型の引数を持つメソッド・ハンドルを作成しますが、ブール戻り値を使用します。 呼び出されると、n番目の引数が指定されたクラスまたはそのサブクラスのインスタンスである場合、trueを返します。 残りの引数は無視されます。- パラメータ:
clazz
- テストする最初の引数のクラスpos
- テストする引数リスト上の位置type
- メソッドの型- 戻り値:
- メソッド・ハンドルは、最初の引数が指定されたクラスかサブクラスかをテストします。
-
isArray
public static MethodHandle isArray(int pos, MethodType type) 指定された位置の引数がJava配列である場合にtrueを返すメソッド・ハンドルを作成します。- パラメータ:
pos
- 引数の位置が点灯type
- ハンドルのメソッドの型- 戻り値:
- 指定された位置の引数がJava配列である場合にtrueを返すメソッド・ハンドル。残りの引数は無視されます。
-
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) 特定のクラスであるための唯一の引数をテストするguardメソッドを作成します。- パラメータ:
clazz
- テストするクラス。- 戻り値:
- 目的のガード方式。
-
getInstanceOfGuard
public static MethodHandle getInstanceOfGuard(Class<?> clazz) 特定のクラスのインスタンスであるための唯一の引数をテストするガード・メソッドを作成します。- パラメータ:
clazz
- テストするクラス。- 戻り値:
- 目的のガード方式。
-
getIdentityGuard
public static MethodHandle getIdentityGuard(Object obj) 他のオブジェクトと同じ参照を持つために唯一の引数をテストするガード・メソッドを作成- パラメータ:
obj
- 参照同一性テストとして使用されるオブジェクト- 戻り値:
- 目的のガード方式。
-
isNull
-
isNotNull
public static MethodHandle isNotNull()最初の引数がnullでないかどうかをテストするガードを返します。- 戻り値:
- 最初の引数がnullでないかどうかをテストするガード。
-