为什么需要编写defaultReadObject()并defaultWriteObject()作为类实现接口时的第一个语句readObject(ObjectInputStream o)和writeObject(ObjectOutputStream o)方法serializable.
defaultReadObject()并且defaultWriteObject()应该是内部readObject(ObjectInputStream o)和第一个方法调用writeObject(ObjectOutputStream o).它分别读取和写入类的所有non transient字段.这些方法还有助于向后和将来的兼容性.如果将来你non-transient在类中添加了一些字段,并且你试图通过旧版本的类反序列化它,那么defaultReadObject()方法将忽略新添加的字段,类似地,如果你通过新版本反序列化旧的序列化对象,那么新的非瞬态字段将从JVM获取默认值,即如果其对象则为null,否则为原语然后布尔值为false,int为0等等.
| 归档时间: |
|
| 查看次数: |
754 次 |
| 最近记录: |