public class RemoteObjectInvocationHandler extends RemoteObject implements InvocationHandler
InvocationHandlerインタフェースの実装です。 この呼出しハンドラは、動的プロキシ・インスタンスと組み合わせて、事前生成されたスタブ・クラスの代わりとして使用できます。
アプリケーションがこのクラスを直接使用することは想定されていません。 UnicastRemoteObjectまたはActivatableを使って動的プロキシとしてエクスポートされたリモート・オブジェクトは、このクラスのインスタンスをそのプロキシの呼出しハンドラとして含みます。
ref| コンストラクタ | 説明 |
|---|---|
RemoteObjectInvocationHandler(RemoteRef ref) |
指定された
RemoteRefを使って新しいRemoteObjectInvocationHandlerを作成します。 |
public RemoteObjectInvocationHandler(RemoteRef ref)
RemoteRefを使って新しいRemoteObjectInvocationHandlerを作成します。ref - リモート参照NullPointerException - refがnullである場合public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
proxy上で発行されたメソッド呼出しを処理し、その結果を返します。
RemoteObjectInvocationHandlerでは、このメソッドは次のように実装されています。
methodが次のメソッドのいずれかである場合、それらは次のように処理されます。
Object.hashCode: プロキシのハッシュ・コード値を返します。
Object.equals: 引数(args[0])が動的プロキシ・クラスのインスタンスであり、かつその引数の呼出しハンドラがこの呼出しハンドラと等しい場合はtrueを返し、それ以外の場合はfalseを返します。
Object.toString: プロキシの文字列表現を返します。
そうでない場合、リモート呼出しが次のようにして実行されます。
proxyがRemoteインタフェースのインスタンスでない場合は、IllegalArgumentExceptionがスローされます。
RemoteRefに対してinvokeメソッドが呼び出されます。その際、引数としてproxy、method、args、およびmethodに対するメソッド・ハッシュ(「Java Remote Method Invocation (RMI)仕様」のセクション8.3で定義されている)が渡されます。そして、その結果が返されます。
RemoteRef.invokeから例外がスローされ、かつその例外が、proxyのクラスで実装されているメソッドのthrows節に指定されたどの例外にも割り当てられないチェック例外であった場合、その例外がUnexpectedException内にラップされ、そのラップされた例外がスローされます。 それ以外の場合は、invokeによってスローされた例外がこのメソッドによってスローされます。
この呼出しハンドラを含む有効な動的プロキシ・クラスのインスタンスによって引数が生成されていなかった場合、このメソッドのセマンティックスは不明となります。
invoke、インタフェースInvocationHandlerproxy - メソッドが呼び出されるプロキシ・インスタンスmethod - プロキシ・インスタンスで呼び出されるインタフェース・メソッドに対応するMethodインスタンスargs - プロキシ・インスタンスでのメソッド呼出し時に渡される引数値を格納するオブジェクト配列。メソッドが引数を取らない場合はnull。Throwable - プロキシ・インスタンスでのメソッド呼び出しからスローされる例外UndeclaredThrowableException バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。