|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.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 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。