java.lang.Object
java.rmi.server.RemoteObject
java.rmi.server.RemoteObjectInvocationHandler
- すべての実装されたインタフェース:
Serializable
,InvocationHandler
,Remote
public class RemoteObjectInvocationHandler extends RemoteObject implements InvocationHandler
Java Remote Method Invocation (Java RMI)で使用するための
InvocationHandler
インタフェースの実装です。 この呼出しハンドラは、動的プロキシ・インスタンスと組み合わせて、事前生成されたスタブ・クラスの代わりとして使用できます。
アプリケーションがこのクラスを直接使用することは想定されていません。 UnicastRemoteObject
で動的プロキシを使用するようにエクスポートされたリモート・オブジェクトには、そのプロキシ起動ハンドラとしてこのクラスのインスタンスがあります。
- 導入されたバージョン:
- 1.5
- 関連項目:
-
フィールドのサマリー
クラス java.rmi.server.RemoteObjectで宣言されたフィールド
ref
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明指定されたRemoteRef
を使って新しいRemoteObjectInvocationHandler
を作成します。 -
メソッドのサマリー
-
コンストラクタの詳細
-
RemoteObjectInvocationHandler
public RemoteObjectInvocationHandler(RemoteRef ref) 指定されたRemoteRef
を使って新しいRemoteObjectInvocationHandler
を作成します。- パラメータ:
ref
- リモート参照- 例外:
NullPointerException
-ref
がnull
である場合
-
-
メソッドの詳細
-
invoke
このオブジェクトをカプセル化しているプロキシ・インスタンスproxy
上で発行されたメソッド呼出しを処理し、その結果を返します。RemoteObjectInvocationHandler
では、このメソッドは次のように実装されています。method
が次のメソッドのいずれかである場合、それらは次のように処理されます。Object.hashCode
: プロキシのハッシュ・コード値を返します。Object.equals
: 引数(args[0]
)が動的プロキシ・クラスのインスタンスであり、かつその引数の呼出しハンドラがこの呼出しハンドラと等しい場合はtrue
を返し、それ以外の場合はfalse
を返します。Object.toString
: プロキシの文字列表現を返します。
method
がObject.finalize
を上書きする場合は無視されます。そうでない場合、リモート呼出しが次のようにして実行されます。
proxy
がRemote
インタフェースのインスタンスでない場合は、IllegalArgumentException
がスローされます。- それ以外の場合は、この呼出しハンドラの
RemoteRef
に対してinvoke
メソッドが呼び出されます。その際、引数としてproxy
、method
、args
、およびmethod
に対するメソッド・ハッシュ(「Java Remote Method Invocation (RMI)仕様」のセクション8.3で定義されている)が渡されます。そして、その結果が返されます。 RemoteRef.invoke
から例外がスローされ、かつその例外が、proxy
のクラスで実装されているメソッドのthrows
節に指定されたどの例外にも割り当てられないチェック例外であった場合、その例外がUnexpectedException
内にラップされ、そのラップされた例外がスローされます。 それ以外の場合は、invoke
によってスローされた例外がこのメソッドによってスローされます。
この呼出しハンドラを含む有効な動的プロキシ・クラスのインスタンスによって引数が生成されていなかった場合、このメソッドのセマンティックスは不明となります。
- 定義:
invoke
、インタフェースInvocationHandler
- パラメータ:
proxy
- メソッドが呼び出されるプロキシ・インスタンスmethod
- プロキシ・インスタンスで呼び出されるインタフェース・メソッドに対応するMethod
インスタンスargs
- プロキシ・インスタンスでのメソッド呼出し時に渡される引数値を格納するオブジェクト配列。メソッドが引数を取らない場合はnull
。- 戻り値:
- プロキシ・インスタンスでのメソッド呼び出しからの戻り値
- 例外:
Throwable
- プロキシ・インスタンスでのメソッド呼び出しからスローされる例外- 関連項目:
-