|
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
内の invoke
proxy
- メソッドが呼び出されるプロキシインスタンスmethod
- プロキシインスタンス上で呼び出されたインタフェースメソッドに対応する Method
インスタンスargs
- プロキシインスタンス上でのメソッド呼び出し時に指定された引数の値を含むオブジェクト配列。引数をとらないメソッドの場合は null
Throwable
- プロキシインスタンス上でのメソッド呼び出しからスローされた例外
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。