1

有人可以告诉我序列化如何为对象工作。我试过用谷歌搜索,但出于这个原因,我总是迷失在细节上。我只需要知道您何时序列化其类具有私有/公共变量、静态变量和私有/公共方法的对象。一切都被序列化还是只是变量?比如拥有一个包含许多方法的对象,这些方法将被序列化以跨活动传递,这是一个坏习惯吗?

4

1 回答 1

4

只有对象的状态被序列化——换句话说,就是字段。方法本身没有序列化。但是,生成的版本号实际上也是状态的一部分,这取决于存在的方法。诚然,您可以使用字段更改此行为serialVersionUid- 但这仍然很棘手。

我个人强烈建议不要使用 Java 二进制序列化 - 管理向后和向前兼容性最终非常棘手。还有很多其他可用的序列化框架,它们通常比 Java 序列化需要更多的工作才能开始,但最终更便携和可维护。就我个人而言,我是Protocol Buffers的粉丝,但我有偏见:)

于 2013-02-11T18:16:41.313 回答