java - 使用可序列化接口(interface)可以进行选择性序列化吗?

标签 java serialization

假设我的类 MyClass 有 10 个变量。通过用 Serialized 标记类,我们序列化了所有 10 个变量。

我的问题是有没有办法只序列化其中一些变量,比如说 5 个?

我知道可以通过将变量标记为transient来完成。但我想知道除了使用 transient 关键字之外是否还有其他方法可以做到这一点。

最佳答案

如果你的类实现了 Externalizable接口(interface),那么您将可以更好地控制对象的序列化方式。

请注意,与 Serialized 不同,Externalizable 接口(interface)不是标记接口(interface),您需要实现 readExternal()writeExternal() 方法,您实际上可以在其中以编程方式选择要序列化的类成员以及如何完成反序列化。

更多信息:

关于java - 使用可序列化接口(interface)可以进行选择性序列化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31807152/

相关文章:

java - 如何使用 Context 上下文调用方法

java - 模拟静态方法内部的静态方法

java - 在模型类中使用 awt 类

c++ - 在 C++ 中反序列化树的最快方法是什么

c# - 通过限制派生的类型的 XML 对象绑定(bind)

serialization - 将 JAXB 对象加载到 Apache Hive/Impala

java - 如何在 Homebrew 公式中下载 Buck 远程文件?

java - java中反序列化对象

java - 为什么为继承而设计的类应该很少实现 Serializble 接口(interface)?

java - CSVRecordReader 和 CSV 行末尾未终止的引用字段