java.rmi.server

接口
异常
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 中,地址空间标识符等效于通过调用具有值 0 的 UID.UID(short) 构造方法返回的标识符。

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

从以下版本开始:
JDK1.1
另请参见:
序列化表格

字段摘要
static int ACTIVATOR_ID
          激活程序的已知 ObjID 的对象数。
static int DGC_ID
          分布式垃圾回收器的已知 ObjID 的对象数。
static int REGISTRY_ID
          注册表的已知 ObjID 的对象数。
 
构造方法摘要
ObjID()
          生成唯一的对象标识符。
ObjID(int objNum)
          创建“已知的”对象标识符。
 
方法摘要
 boolean equals(Object obj)
          比较指定对象与此 ObjID 是否相等。
 int hashCode()
          返回此对象标识符、对象数的哈希码值。
static ObjID read(ObjectInput in)
          通过从 ObjectInput 实例解组二进制表示形式来构造和返回一个新的 ObjID 实例。
 String toString()
          返回此对象标识符的字符串表示形式。
 void write(ObjectOutput out)
          将此 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()
返回此对象标识符、对象数的哈希码值。

覆盖:
Object 中的 hashCode
返回:
此对象标识符的哈希码值
另请参见:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
比较指定对象与此 ObjID 是否相等。 当且仅当该指定对象是一个与该对象具有相同对象数和地址空间标识符的 ObjID 时,此方法返回 true

覆盖:
Object 中的 equals
参数:
obj - 要与此 ObjID 比较的对象
返回:
如果给定对象与此对象等效,则返回 true;否则返回 false
另请参见:
Object.hashCode(), Hashtable

toString

public String toString()
返回此对象标识符的字符串表示形式。

覆盖:
Object 中的 toString
返回:
此对象标识符的字符串表示形式