- java.lang.Object
-
- jdk.dynalink.linker.support.Guards
-
public final class Guards extends Object
MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle)
の典型的なガードを作成し、そのメソッド型を調整するユーティリティ・メソッド。
-
-
メソッドのサマリー
すべてのメソッド 静的メソッド 具象メソッド 修飾子と型 メソッド 説明 static MethodHandle
asType(MethodHandle test, MethodType type)
ガードとして使用するためのメソッド・ハンドルを取得し、リクエストされた型に適合させますが、ブール値を返します。static MethodHandle
asType(LinkerServices linkerServices, MethodHandle test, MethodType type)
ガードとして使用するためのメソッド・ハンドルを取得し、リクエストされた型に適合させますが、ブール値を返します。static MethodHandle
getClassGuard(Class<?> clazz)
正確な特定のクラスであるために唯一の引数をテストするガード・メソッドを作成します。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
isNotNull()
最初の引数がnullでないかどうかを調べるガードを返します。static MethodHandle
isNull()
最初の引数がnullかどうかを調べるガードを返します。static MethodHandle
isOfClass(Class<?> clazz, MethodType type)
指定された型の引数を持つがboolean戻り値を持つガード・メソッド・ハンドルを作成します。
-
-
-
メソッドの詳細
-
isOfClass
public static MethodHandle isOfClass(Class<?> clazz, MethodType type)
指定された型の引数を持つがboolean戻り値を持つガード・メソッド・ハンドルを作成します。 呼び出されると、最初の引数が指定されたクラス(正確には、サブクラスではない)のものであれば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)
ガードとして使用するためのメソッド・ハンドルを取得し、リクエストされた型に適合させますが、ブール値を返します。MethodHandle.asType(MethodType)
を適用して型を変換し、MethodHandles.dropArguments(MethodHandle, int, Class...)
を使用してリクエストされた型アリティに一致させます。- パラメータ:
test
- テスト・メソッド・ハンドルtype
- メソッド・ハンドルを適用する型- 戻り値:
- 適合したメソッド・ハンドル
-
asType
public static MethodHandle asType(LinkerServices linkerServices, MethodHandle test, MethodType type)
ガードとして使用するためのメソッド・ハンドルを取得し、リクエストされた型に適合させますが、ブール値を返します。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でないかどうかを調べるガード。
-
-