| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.rmi.server.RemoteObject
java.rmi.server.RemoteObjectInvocationHandler
public class RemoteObjectInvocationHandler
Java リモートメソッド呼び出し (Java RMI) で使用するための InvocationHandler インタフェースの実装です。この呼び出しハンドラは、動的プロキシインスタンスと組み合わせて、事前生成されたスタブクラスの代わりとして使用できます。
 
アプリケーションがこのクラスを直接使用することは想定されていません。UnicastRemoteObject または Activatable を使って動的プロキシとしてエクスポートされたリモートオブジェクトは、このクラスのインスタンスをそのプロキシの呼び出しハンドラとして含みます。
| フィールドの概要 | 
|---|
| クラス java.rmi.server.RemoteObject から継承されたフィールド | 
|---|
| ref | 
| コンストラクタの概要 | |
|---|---|
| RemoteObjectInvocationHandler(RemoteRef ref)指定された RemoteRefを使って新しいRemoteObjectInvocationHandlerを作成します。 | |
| メソッドの概要 | |
|---|---|
|  Object | invoke(Object proxy,
       Method method,
       Object[] args)このオブジェクトをカプセル化しているプロキシインスタンス proxy上で発行されたメソッド呼び出しを処理し、その結果を返します。 | 
| クラス java.rmi.server.RemoteObject から継承されたメソッド | 
|---|
| equals, getRef, hashCode, toString, toStub | 
| クラス java.lang.Object から継承されたメソッド | 
|---|
| clone, finalize, getClass, notify, notifyAll, wait, wait, wait | 
| コンストラクタの詳細 | 
|---|
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 によってスローされた例外がこのメソッドによってスローされる。
 この呼び出しハンドラを含む有効な動的プロキシクラスのインスタンスによって引数が生成されていなかった場合、このメソッドのセマンティクスは不明となります。.
InvocationHandler 内の invokeproxy - メソッドが呼び出されるプロキシインスタンスmethod - プロキシインスタンスで呼び出されるインタフェースメソッドに対応する Method インスタンスargs - プロキシインスタンスでのメソッド呼び出し時に渡される引数の値が含まれるオブジェクト配列。メソッドが引数をとらない場合は null
Throwable - プロキシインスタンスでのメソッド呼び出しからスローされる例外| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。