Module java.rmi
Package java.rmi.server

Class 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的对象编号。

自 JDK 版本:
1.1
参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    激活器的众所周知ObjID的对象编号。
    static final int
    分布式垃圾收集器的众所周知ObjID的对象编号。
    static final int
    注册表的众所周知ObjID的对象编号。
  • Constructor Summary

    Constructors
    Constructor
    Description
    ObjID()
    生成一个唯一的对象标识符。
    ObjID(int objNum)
    创建一个“众所周知”的对象标识符。
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    equals(Object obj)
    将指定的对象与此ObjID进行比较以检查是否相等。
    int
    返回此对象标识符(对象编号)的哈希码值。
    static ObjID
    通过从ObjectInput实例解组二进制表示来构造并返回一个新的ObjID实例。
    返回此对象标识符的字符串表示形式。
    void
    将此ObjID的二进制表示编组到一个ObjectOutput实例。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • 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的对象编号。
      参见:
  • Constructor Details

    • ObjID

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

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

    • ObjID

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

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

      参数:
      objNum - 众所周知对象标识符的对象编号
  • Method Details

    • 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进行比较以检查是否相等。如果指定的对象是具有与此对象相同的对象编号和地址空间标识符的ObjID实例,则此方法返回true
      覆盖:
      equals 在类 Object
      参数:
      obj - 要将此ObjID与之比较的对象
      返回:
      如果给定对象等效于此对象,则返回true;否则返回false
      参见:
    • toString

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