モジュール java.base
パッケージ java.lang.reflect

インタフェースInvocationHandler

  • 既知のすべての実装クラス:
    CompositeDataInvocationHandler, EventHandler, MBeanServerInvocationHandler, RemoteObjectInvocationHandler


    public interface InvocationHandler
    InvocationHandlerは、プロキシ・インスタンスの呼出しハンドラが実装するインタフェースです。

    プロキシ・インスタンスには、それぞれに関連した呼出しハンドラがあります。 プロキシ・インスタンスでメソッドが呼び出されると、メソッドの呼出しが符号化され、各プロキシ・インスタンスの呼出しハンドラのinvokeメソッドにディスパッチされます。

    導入されたバージョン:
    1.3
    関連項目:
    Proxy
    • メソッドの詳細

      • invoke

        Object invoke​(Object proxy,
                      Method method,
                      Object[] args)
               throws Throwable
        プロキシ・インスタンスでメソッド呼出しを処理し、その結果を返します。 関連したプロキシ・インスタンスでメソッドが呼び出されると、このメソッドは呼出しハンドラで呼び出されます。
        パラメータ:
        proxy - メソッドが呼び出されるプロキシ・インスタンス
        method - プロキシ・インスタンスで呼び出されるインタフェース・メソッドに対応するMethodインスタンス。 Methodオブジェクトの宣言クラスは、このメソッドが宣言されたインタフェースです。プロキシ・クラスがメソッドを継承するプロキシ・インタフェースのスーパー・インタフェースのこともある。
        args - プロキシ・インスタンスでのメソッド呼出し時に渡される引数値を格納するオブジェクト配列。インタフェース・メソッドが引数を取らない場合、nullとなる。 プリミティブ型引数はjava.lang.Integerまたはjava.lang.Booleanのような適切なプリミティブ型ラッパー・クラスのインスタンスにラップされる。
        戻り値:
        プロキシ・インスタンスでのメソッド呼び出しからの戻り値。 インタフェース・メソッドの宣言された戻り値の型がプリミティブ型の場合は、このメソッドの戻り値は対応するプリミティブ・ラッパー・クラスのインスタンスでなければならない。そうでない場合、宣言された戻り値の型に割り当てられる型でなければならない。 このメソッドによる戻り値がnullで、インタフェース・メソッドの戻り値がプリミティブ型の場合、プロキシ・インスタンスでのメソッド呼出しによってNullPointerExceptionがスローされる。 これ以外のケースで、このメソッドの戻り値と上記のようなインタフェース・メソッドの宣言された戻り値の型との間に互換性がない場合、ClassCastExceptionがプロキシ・インスタンスでのメソッド呼出しによってスローされることになる。
        例外:
        Throwable - プロキシ・インスタンスでのメソッド呼び出しからスローされる例外。 この例外のタイプは、インタフェース・メソッドのthrows節に宣言される例外タイプか、または、非チェック例外タイプのjava.lang.RuntimeExceptionまたはjava.lang.Errorに割り当てられなければならない。 このメソッドによってスローされるチェック例外が、インタフェース・メソッドのthrows節に宣言された例外タイプに割り当てられない場合、このメソッドがスローした例外を格納するUndeclaredThrowableExceptionがプロキシ・インスタンスでのメソッド呼出しによってスローされることになる
        関連項目:
        UndeclaredThrowableException