java命名空间java.io类objectoutputstream的类成员方法:
writeunshared定义及介绍
本文导语:
writeunshared
public void writeunshared(object obj)
throws ioexception
将“未共享”对象写入 objectoutputstream。此方法等同于 writeobject,不同点在于它总是将给定对象作为流中唯一的新对象进行写入(相对于指向以前序列化实例...
writeunshared
public void writeunshared(object obj)
throws ioexception
- 将“未共享”对象写入 objectoutputstream。此方法等同于 writeobject,不同点在于它总是将给定对象作为流中唯一的新对象进行写入(相对于指向以前序列化实例的 back 引用而言)。尤其是:
- 通过 writeunshared 写入的对象总是作为新出现对象(未曾将对象写入流中)被序列化,不管该对象以前是否已经被写入过。
- 如果使用 writeobject 写入以前通过 writeunshared 写入的对象,则可将以前的 writeunshared 操作视为写入一个单独对象。换句话说,objectoutputstream 永远不会生成通过调用 writeunshared 写入的对象数据的 back 引用。
虽然通过 writeunshared 写入对象本身不能保证反序列化对象时对象引用的唯一性,但它允许在流中多次定义单个对象,因此接收方对 readunshared 的多个调用不会引发冲突。注意,上述规则仅应用于通过 writeunshared 写入的基层对象,而不能应用于要序列化的对象图形中的任何可变迁方式引用的子对象。
重写此方法的 objectoutputstream 子类只能在处理 "enablesubclassimplementation" serializablepermission 的安全上下文中构造;在不具有此权限的情况下,任何实例化这种子类的尝试都将导致抛出 securityexception。
- 参数:
obj
- 要写入流的对象
- 抛出:
notserializableexception
- 如果要序列化的图形中的对象不能实现 serializable 接口
invalidclassexception
- 如果要序列化的对象的类存在问题
ioexception
- 如果序列化期间发生 i/o 错误- 从以下版本开始:
- 1.4