モジュール jdk.dynalink

クラスガード

    • メソッドの詳細

      • 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 - メソッド・ハンドルを適応させる型
        戻り値:
        適合メソッド・ハンドル
      • 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でないかどうかをテストするガード。