Java 番石榴不可变集合的序列化是否稳定?
有人警告我不要在序列化通信中使用的对象中使用Guava immutable collections,因为如果一端的Guava版本被更新,可能会出现序列化版本不兼容的问题。这是一个合理的担忧吗?是的,这是一个合理的担忧 从番石榴项目主页(http://code.google.com/p/guava-libraries/): 所有对象的序列化形式都可能发生更改。不要保存这些内容,并假设它们可以被库的未来版本读取Java 番石榴不可变集合的序列化是否稳定?,java,serialization,guava,Java,Serialization,Guava,有人警告我不要在序列化通信中使用的对象中使用Guava immutable collections,因为如果一端的Guava版本被更新,可能会出现序列化版本不兼容的问题。这是一个合理的担忧吗?是的,这是一个合理的担忧 从番石榴项目主页(http://code.google.com/p/guava-libraries/): 所有对象的序列化形式都可能发生更改。不要保存这些内容,并假设它们可以被库的未来版本读取 如果您使用的是Java本机序列化,那么Guava不是一个好的选择。让我们给出一些观点 序
如果您使用的是Java本机序列化,那么Guava不是一个好的选择。让我们给出一些观点 序列化最突出的用途是:
最后,我要指出的是,番石榴在谷歌内部被广泛使用,而且管理得相当好 这对于任何类来说都可能是一个问题——你希望库的版本在发送端和接收端都是相同的。如果你不能控制在通信的两端使用哪个版本,那就“不是一个好选择”。这太糟糕了。不可变集合现在应该是稳定的。他们为什么要更改序列化的表单?在不同版本的数据结构之间保持序列化的兼容性真的很难。请参阅本文后面的一些消息,了解原因。