Java序列化(二)(二)

2014-11-24 02:40:46 · 作者: · 浏览: 1
列化时,会调用readObject方法。writeObject 方法负责写入特定类的对象的状态,以便相应的 readObject 方法可以还原它。通过调用 out.defaultWriteObject 可以调用保存 Object 的字段的默认机制。readObject 方法负责从流中读取并还原类字段。它可以调用 in.defaultReadObject 来调用默认机制,以还原对象的非静态和非瞬态字段。所以,我们可以在Name类中加入如下方法:
private void writeObject(java.io.ObjectOutputStream out)
		 throws IOException {
	// 默认序列化机制
	out.defaultWriteObject();
	// 序列化nickname中的name属性
	out.writeObject(nickname.getName());
}

private void readObject(java.io.ObjectInputStream in)
		 throws IOException, ClassNotFoundException {
	// 默认逆序列化机制
	in.defaultReadObject();
	// 逆序列化一个nickname对象
	nickname = new Nickname(in.readObject().toString());
}
这样就可以处理其不可序列化的复合类Nickname中的name属性序列化及反序列化。运行WriteObject和ReadObject,序列化和反序列化成功。这两个方法如何实现取决于最终的需求,上面的例子是我想的一个比较符合应用场景的实例。
本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/19120019,转载请注明。