为什么在类实现接口时需要编写defaultReadObject()
and作为and方法defaultWriteObject()
中的第一条语句。readObject(ObjectInputStream o)
writeObject(ObjectOutputStream o)
serializable
user2502591
问问题
856 次
2 回答
8
defaultReadObject()
anddefaultWriteObject()
应该是里面的第一个方法调用readObject(ObjectInputStream o)
,writeObject(ObjectOutputStream o).
它分别读取和写入non transient
类的所有字段。这些方法还有助于向后和未来的兼容性。如果将来您non-transient
向类添加一些字段并且您试图通过旧版本的类对其进行反序列化,则 defaultReadObject() 方法将忽略新添加的字段,同样如果您通过新版本反序列化旧的序列化对象,则新的非瞬态字段将从 JVM 获取默认值,即如果它的对象则为 null,否则如果原始则布尔值为 false,int 为 0 等等。
于 2013-06-21T13:01:29.433 回答
2
于 2013-06-21T13:13:14.050 回答