- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
为什么需要将 defaultReadObject()
和 defaultWriteObject()
作为 readObject(ObjectInputStream o)
和 中的第一条语句writeObject(ObjectOutputStream o)
类实现 serializable
接口(interface)时的方法。
最佳答案
defaultReadObject()
和 defaultWriteObject()
应该是 readObject(ObjectInputStream o)
和 writeObject(ObjectOutputStream o).
分别读写类的所有non transient
字段。这些方法还有助于向后和将来兼容。如果将来您向类中添加一些 non-transient
字段,并且您试图通过旧版本的类对其进行反序列化,则 defaultReadObject() 方法将忽略新添加的字段,同样,如果您反序列化新版本的旧序列化对象,然后新的非 transient 字段将从 JVM 获取默认值,即如果其对象则为 null,否则如果是原语则 boolean 为 false,int 为 0 等......
关于java - 需要 defaultReadObject() 和 defaultWriteObject(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17235877/
ObjectInputStream 类中的readObject 和defaultReadObject 有什么区别?我似乎找不到太多关于差异的信息。 最佳答案 defaultReadObject() 调
为什么需要将 defaultReadObject() 和 defaultWriteObject() 作为 readObject(ObjectInputStream o) 和 中的第一条语句writeO
我正在学习《Effective Java》,第 75 项: If all instance fields are transient, it is technically permissible to
我是一名优秀的程序员,十分优秀!