Java 序列化:扩展、定制与持久化策略
1. 扩展和定制序列化
在大多数情况下,Java 序列化 API 开箱即用的功能已经足够强大,但在某些场景下,开发者需要对序列化过程进行更精细的控制。例如,有时我们不希望类的每个字段都被序列化到磁盘;有时我们想在序列化流中添加类字段之外的额外信息,或者在序列化之前修改类的某些成员。当类的定义发生修改(如字段重命名、添加或删除字段)时,之前序列化的类在反序列化时会出错,这就需要对序列化进行定制。下面介绍几种常用的定制和扩展 Java 序列化的机制。
1.1 transient 关键字
在 Java 中, transient 关键字用于 Java 序列化。任何被标记为 transient 的字段都不会被保存到磁盘。这在类包含一个未实现 Serializable 接口的对象引用,但又想将类实例持久化到磁盘时非常有用。另外,某些依赖于运行时的字段也不应该被持久化。
例如,在 Configuration 对象中,我们可能想额外存储一个对应用程序的引用(可能用于回调)。当将应用程序保存到磁盘时,肯定不希望持久化应用程序及其对象图中的所有关联对象(即使这些对象都实现了 Serializable 接口)。要将一个字段标记为 transient ,只需在对象或基本类型的定义前加上该关键字:
private transient Application application;
</
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



