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

クラスMarshalledObject<T>

  • 型パラメータ:
    T - このMarshalledObjectに包含されるオブジェクトの型
    すべての実装されたインタフェース:
    Serializable

    public final class MarshalledObject<T>
    extends Object
    implements Serializable
    MarshalledObjectは、コンストラクタに渡されるオブジェクトの、直列化表現のバイト・ストリームを包含します。 getメソッドは、包含されたバイト・ストリームから直列化復元された、元のオブジェクトの新しいコピーを返します。 包含されたオブジェクトは、パラメータおよびRMI呼出しの戻り値の整列化、および非整列化に使われるのと同じ直列化のセマンティックスを使って、直列化、および直列化復元されます。直列化された形式が作成されるときには、次のことが該当します。
    • クラスには、そのロード元(可能な場合)となるコード・ベースURLが付加される
    • MarshalledObjectにあるリモート・オブジェクトは、すべてそのスタブの直列化されたインスタンスで表現される

    オブジェクトのコピーをgetメソッドで取得する場合、クラスがローカルに利用可能でなければ、適切な場所からクラスをロードします。その場所は、クラスが直列化されたときにクラス記述子で記述されたURLで指定されます。

    MarshalledObjectを使うことにより、リモート・ピアが即座に自動的に直列化復元できない、RMI呼出しでのオブジェクト渡しが容易になります。

    導入されたバージョン:
    1.2
    関連項目:
    直列化された形式
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      MarshalledObject​(T obj)
      提供されたオブジェクトの現在の状態を直列化して表現したものを包含する、新しいMarshalledObjectを作成します。
    • コンストラクタの詳細

      • MarshalledObject

        public MarshalledObject​(T obj)
                         throws IOException
        提供されたオブジェクトの現在の状態を直列化して表現したものを包含する、新しいMarshalledObjectを作成します。 オブジェクトは、RMI呼出しのパラメータの整列化に使われるセマンティックスによって直列化されます。
        パラメータ:
        obj - 直列化されるオブジェクト(直列化可能である必要がある)
        例外:
        IOException - IOExceptionが発生した場合。IOExceptionは、objが直列化可能でない場合に発生することがある。
        導入されたバージョン:
        1.2
    • メソッドの詳細

      • get

        public T get()
              throws IOException,
                     ClassNotFoundException
        包含された、整列化されたオブジェクトの新しいコピーを返します。 内部表現は、RMI呼出しのパラメータの非整列化に使われるセマンティックスで直列化復元されます。 MarshalledObjectがObjectInputStreamから読み込まれた場合、そのストリームのフィルタを使用してオブジェクトを直列化復元します。
        戻り値:
        包含されたオブジェクトのコピー
        例外:
        IOException - 内部表現からオブジェクトを直列化復元しているときにIOExceptionが発生した場合。
        ClassNotFoundException - 内部表現からオブジェクトを直列化復元しているときにClassNotFoundExceptionが発生した場合
        導入されたバージョン:
        1.2
      • equals

        public boolean equals​(Object obj)
        このMarshalledObjectと別のオブジェクトを比較します。 比較の対象となるオブジェクトとまったく同じ直列化表現を包含するMarshalledObjectを引数が参照している場合に限り、trueを返します。 この比較では、クラスのコード・ベース注釈は無視されます。つまり、各クラスのコード・ベースの直列化表現を除いて、その他の直列化表現が同じであれば、2つのオブジェクトは同等と見なされます。
        オーバーライド:
        equals 、クラス:  Object
        パラメータ:
        obj - このMarshalledObjectと比較するオブジェクト
        戻り値:
        同等の直列化オブジェクトが引数である場合はtrue、それ以外の場合はfalse
        導入されたバージョン:
        1.2
        関連項目:
        Object.hashCode()HashMap