模块 java.rmi

类 ObjID

java.lang.Object
java.rmi.server.ObjID
所有已实现的接口:
Serializable

public final class ObjID extends Object implements Serializable
ObjID 用于标识导出到 RMI 运行时的远程对象。导出远程对象时,会根据用于导出的 API 隐式或显式为其分配一个对象标识符。

ObjID() 构造函数可用于生成唯一的对象标识符。这样的 ObjID 对于生成它的主机来说随着时间的推移是唯一的。 ObjID(int) 构造函数可用于创建“知名”对象标识符。众所周知的 ObjID 的范围取决于它导出到的 RMI 运行时。

ObjID 实例包含对象编号(类型为 long )和地址空间标识符(类型为 UID )。在唯一的 ObjID 中,地址空间标识符随着时间的推移对于给定主机是唯一的。在众所周知的 ObjID 中,地址空间标识符等同于调用值为零的 UID(short) 构造函数返回的标识符。

如果系统属性 java.rmi.server.randomIDs 被定义为等于字符串 "true"(不区分大小写),则 ObjID() 构造函数将使用加密强随机数生成器来选择返回的 ObjID 的对象编号。

自从:
1.1
参见:
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    static final int
    众所周知的 ObjID 激活器的对象编号。
    static final int
    众所周知的分布式垃圾收集器ObjID 的对象编号。
    static final int
    众所周知的 ObjID 注册表的对象编号。
  • 构造方法总结

    构造方法
    构造方法
    描述
    生成唯一的对象标识符。
    ObjID(int objNum)
    创建一个“众所周知的”对象标识符。
  • 方法总结

    修饰符和类型
    方法
    描述
    boolean
    equals(Object obj)
    比较指定对象与此 ObjID 是否相等。
    int
    返回此对象标识符的哈希码值,即对象编号。
    static ObjID
    通过从 ObjectInput 实例解组二进制表示来构造并返回一个新的 ObjID 实例。
    返回此对象标识符的字符串表示形式。
    void
    将此 ObjID 的二进制表示编组为 ObjectOutput 实例。

    在类 java.lang.Object 中声明的方法

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • 字段详细信息

    • REGISTRY_ID

      public static final int REGISTRY_ID
      众所周知的 ObjID 注册表的对象编号。
      参见:
    • ACTIVATOR_ID

      public static final int ACTIVATOR_ID
      众所周知的 ObjID 激活器的对象编号。
      参见:
    • DGC_ID

      public static final int DGC_ID
      众所周知的分布式垃圾收集器ObjID 的对象编号。
      参见:
  • 构造方法详细信息

    • ObjID

      public ObjID()
      生成唯一的对象标识符。

      如果系统属性 java.rmi.server.randomIDs 被定义为等于字符串 "true"(不区分大小写),则此构造函数将使用加密强随机数生成器来选择返回的对象编号 ObjID

    • ObjID

      public ObjID(int objNum)
      创建一个“众所周知的”对象标识符。

      通过此构造函数创建的 ObjID 不会与通过无参数构造函数生成的任何 ObjID 冲突。

      参数:
      objNum - 众所周知的对象标识符的对象编号
  • 方法详情

    • write

      public void write(ObjectOutput  out) throws IOException
      将此 ObjID 的二进制表示编组为 ObjectOutput 实例。

      具体来说,此方法首先使用此对象标识符的对象编号调用给定流的 DataOutput.writeLong(long) 方法,然后通过使用流调用其 UID.write(DataOutput) 方法来写入其地址空间标识符。

      参数:
      out - 将此 ObjID 写入的 ObjectOutput 实例
      抛出:
      IOException - 如果在执行此操作时发生 I/O 错误
    • read

      public static ObjID  read(ObjectInput  in) throws IOException
      通过从 ObjectInput 实例解组二进制表示来构造并返回一个新的 ObjID 实例。

      具体来说,此方法首先调用给定流的 DataInput.readLong() 方法来读取对象编号,然后用流调用 UID.read(DataInput) 以读取地址空间标识符,然后创建并返回一个包含对象编号和地址空间标识符的新 ObjID 实例从流中读取的。

      参数:
      in - 从中读取 ObjIDObjectInput 实例
      返回:
      未编组的 ObjID 实例
      抛出:
      IOException - 如果在执行此操作时发生 I/O 错误
    • hashCode

      public int hashCode()
      返回此对象标识符的哈希码值,即对象编号。
      重写:
      hashCode 在类 Object
      返回:
      此对象标识符的哈希码值
      参见:
    • equals

      public boolean equals(Object  obj)
      比较指定对象与此 ObjID 是否相等。此方法返回 true 当且仅当指定的对象是一个 ObjID 实例,具有与此对象相同的对象编号和地址空间标识符。
      重写:
      equals 在类 Object
      参数:
      obj - 将此 ObjID 与之进行比较的对象
      返回:
      true 如果给定对象等同于此对象,否则 false
      参见:
    • toString

      public String  toString()
      返回此对象标识符的字符串表示形式。
      重写:
      toString 在类 Object
      返回:
      此对象标识符的字符串表示形式