public interface InvocationHandler
InvocationHandler
は、プロキシインスタンスの呼び出しハンドラが実装するインタフェースです。
プロキシインスタンスには、それぞれに関連した呼び出しハンドラがあります。プロキシインスタンスでメソッドが呼び出されると、メソッドの呼び出しが符号化され、各プロシキインスタンスの呼び出しハンドラの invoke
メソッドにディスパッチされます。
Proxy
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
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.