我知道它只是保存对象的状态,但是我应该在哪些类中实现这个接口(interface)?
例如,假设您有 4 个类 A、B、C、D:
abstract class A { ... }
class B extends A { ... }
class C extends A { ... }
D
是创建和操作 A
和 B
对象的类:
class D { A a; B b; ... }
如果我想存储程序的状态,我应该只在 D 类和 A 类中实现 Serialized
接口(interface)吗?
还假设有这个 E 类
只是用来帮助 D
中的一些计算。
E
也应该实现 Serialized
吗?对我来说这似乎不正确,因为它只是一个帮助计算的类,并且它不存储任何需要在以后状态中知道的有值(value)的内容。
最佳答案
仅序列化保存需要取回的数据的内容。在这种情况下,A 似乎是可能的候选者。
我不会序列化 D,因为它只是持久对象的聚合...我允许使用一种方法,让我可以在数组中检索 A 及其子级 (getData()) 的所有实例,或者允许我使用其他方法存储一切。然后是另一种方法,让我用 A 数组重建 D。
此外,由于 E 不保存任何数据,因此不需要序列化(没有任何需要持久化的运行时数据)。
B 和 C 将从 A 继承可序列化。
问问自己,如果我重新启动我的应用程序,当我重新打开它时我希望获得哪些数据。尝试使序列化对象尽可能轻量,这样您的生活就会更轻松。
关于java - 我不确定我是否理解 java 中的可序列化是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7471291/