java序列化,在一个序列化对象中有许多方法是不是很糟糕
有人能告诉我对象的序列化是如何工作的吗。我试着用谷歌搜索,但由于这个原因,我总是在细节上迷路。我只需要知道什么时候序列化一个对象,它的类有私有/公共变量、静态变量和私有/公共方法。所有的东西都被序列化了还是仅仅是变量?比如,一个对象有许多方法,这些方法将被序列化以在活动之间传递,这是一个坏习惯吗
你可以在下面搜索框中键入要查询的问题!
有人能告诉我对象的序列化是如何工作的吗。我试着用谷歌搜索,但由于这个原因,我总是在细节上迷路。我只需要知道什么时候序列化一个对象,它的类有私有/公共变量、静态变量和私有/公共方法。所有的东西都被序列化了还是仅仅是变量?比如,一个对象有许多方法,这些方法将被序列化以在活动之间传递,这是一个坏习惯吗
# 1 楼答案
只有对象的状态被序列化,换句话说就是字段。这些方法本身没有序列化。然而,生成的版本号实际上也是状态的一部分,这取决于存在的方法。诚然,可以使用^{} 字段来改变这种行为,但这仍然很棘手
就我个人而言,我强烈建议不要使用Java二进制序列化——它最终会非常难以管理向后和向前的兼容性。还有很多其他的序列化框架可用,它们通常需要比Java序列化多一点的入门工作,但最终会变得更具可移植性和可维护性。就个人而言,我是Protocol Buffers的粉丝,但我有偏见:)