Module java.rmi
Package java.rmi

Class MarshalledObject<T>

java.lang.Object
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
另请参阅:
  • Constructor Summary

    Constructors
    Constructor
    Description
    创建一个包含所提供对象当前状态的序列化表示的新MarshalledObject
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    equals(Object obj)
    将此MarshalledObject与另一个对象进行比较。
    T
    get()
    返回包含的marshalledobject的新副本。
    int
    返回此MarshalledObject的哈希码。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • MarshalledObject

      public MarshalledObject(T obj) throws IOException
      创建一个包含所提供对象当前状态的序列化表示的新MarshalledObject。对象使用用于RMI调用的编组参数的语义进行序列化。
      参数:
      obj - 要序列化的对象(必须是可序列化的)
      抛出:
      IOException - 如果发生IOException;如果obj不可序列化,则可能会发生IOException
      自版本:
      1.2
  • Method Details

    • get

      public T get() throws IOException, ClassNotFoundException
      返回包含的marshalledobject的新副本。内部表示使用用于RMI调用的解组参数的语义进行反序列化。如果MarshalledObject是从ObjectInputStream读取的,则使用该流的过滤器来反序列化对象。
      返回:
      包含对象的副本
      抛出:
      IOException - 如果从其内部表示中反序列化对象时发生IOException
      ClassNotFoundException - 如果从其内部表示中反序列化对象时发生ClassNotFoundException。找不到
      自版本:
      1.2
    • hashCode

      public int hashCode()
      返回此MarshalledObject的哈希码。
      覆盖:
      hashCode 在类 Object
      返回:
      一个哈希码
      另请参阅:
    • equals

      public boolean equals(Object obj)
      将此MarshalledObject与另一个对象进行比较。 如果且仅当参数引用包含与此对象完全相同的对象的序列化表示的MarshalledObject时,返回true。 比较会忽略任何类代码库注释,这意味着如果两个对象具有相同的序列化表示,除了每个类的代码库之外,它们是等价的。
      覆盖:
      equals 在类 Object
      参数:
      obj - 与此MarshalledObject进行比较的对象
      返回:
      如果参数包含等效序列化对象,则返回true;否则返回false
      自版本:
      1.2
      另请参阅: