モジュール java.rmi
パッケージ java.rmi.server

クラスRemoteObjectInvocationHandler

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を作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    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
  • コンストラクタの詳細

    • RemoteObjectInvocationHandler

      public RemoteObjectInvocationHandler(RemoteRef ref)
      指定されたRemoteRefを使って新しいRemoteObjectInvocationHandlerを作成します。
      パラメータ:
      ref - リモート参照
      例外:
      NullPointerException - refnullである場合
  • メソッドの詳細

    • invoke

      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
      このオブジェクトをカプセル化しているプロキシ・インスタンスproxy上で発行されたメソッド呼出しを処理し、その結果を返します。

      RemoteObjectInvocationHandlerでは、このメソッドは次のように実装されています。

      methodが次のメソッドのいずれかである場合、それらは次のように処理されます。

      • Object.hashCode: プロキシのハッシュ・コード値を返します。
      • Object.equals: 引数(args[0])が動的プロキシ・クラスのインスタンスであり、かつその引数の呼出しハンドラがこの呼出しハンドラと等しい場合はtrueを返し、それ以外の場合はfalseを返します。
      • Object.toString: プロキシの文字列表現を返します。

      methodObject.finalizeを上書きする場合は無視されます。

      そうでない場合、リモート呼出しが次のようにして実行されます。

      • proxyRemoteインタフェースのインスタンスでない場合は、IllegalArgumentExceptionがスローされます。
      • それ以外の場合は、この呼出しハンドラのRemoteRefに対してinvokeメソッドが呼び出されます。その際、引数としてproxymethodargs、およびmethodに対するメソッド・ハッシュ(「Java Remote Method Invocation (RMI)仕様」のセクション8.3で定義されている)が渡されます。そして、その結果が返されます。
      • RemoteRef.invokeから例外がスローされ、かつその例外が、proxyのクラスで実装されているメソッドのthrows節に指定されたどの例外にも割り当てられないチェック例外であった場合、その例外がUnexpectedException内にラップされ、そのラップされた例外がスローされます。 それ以外の場合は、invokeによってスローされた例外がこのメソッドによってスローされます。

      この呼出しハンドラを含む有効な動的プロキシ・クラスのインスタンスによって引数が生成されていなかった場合、このメソッドのセマンティックスは不明となります。

      定義:
      invoke、インタフェース: InvocationHandler
      パラメータ:
      proxy - メソッドが呼び出されるプロキシ・インスタンス
      method - プロキシ・インスタンスで呼び出されるインタフェース・メソッドに対応するMethodインスタンス
      args - プロキシ・インスタンスでのメソッド呼出し時に渡される引数値を格納するオブジェクト配列。メソッドが引数を取らない場合はnull
      戻り値:
      プロキシ・インスタンスでのメソッド呼び出しからの戻り値
      例外:
      Throwable - プロキシ・インスタンスでのメソッド呼び出しからスローされる例外
      関連項目: