Java序列化之readObjectNoData、readResolve方法
资料地址:http://download.oracle.com/javase/1.5.0/docs/guide/serialization/spec/input.html
ANY-ACCESS-MODIFIER Object readResolve() throws ObjectStreamException;
对于Serializable and Externalizable classes,方法readResolve允许class在反序列化返回对象前替换、解析在流中读出来的对象。实现readResolve方法,一个class可以直接控制反序化返回的类型和对象引用。
方法readResolve会在ObjectInputStream已经读取一个对象并在准备返回前调用。ObjectInputStream 会检查对象的class是否定义了readResolve方法。如果定义了,将由readResolve方法指定返回的对象。返回对象的类型一定要是兼容的,否则会抛出ClassCastException 。