java - 使用 Protostuff 默认 RuntimeSchema 时,在 java 类末尾添加字段总是安全的吗?

标签 java protocol-buffers protostuff

我以最基本的方式使用 Protostuff RuntimeSchema :

Schema<Bean> schema = RuntimeSchema.createFrom(Bean.class);

我会将结果 byte[] 保存在某处并在将来反序列化。

但是我有可能会在 Bean.class 中添加一些字段(并且还会生成新的架构)。

我测试了几次,效果很好,我可以将新字段设置为空。

但是我想确保它是否总是安全的,假设新字段总是添加在Bean的末尾,并且总是使用HotSpot JDK。

最佳答案

是的,如果将字段附加到字段列表的末尾,那么它是安全的。 RuntimeSchema 根据字段在类中的顺序将标签分配给字段。

但是,如果您使用继承,事情可能会变得有点棘手。在这种情况下,您应该考虑使用 @Tag 注释。

关于java - 使用 Protostuff 默认 RuntimeSchema 时,在 java 类末尾添加字段总是安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42548908/

相关文章:

java - 使用 RxJava 对数组进行异步 forEach

java - 添加字段以响应 API 时的向后兼容性

c++ - 将 UIImage 转换为 const char*?

protocol-buffers - GRPC 负载均衡器示例

java - 如何使用 Protostuff 序列化 Guava 的不可变集合?

java - protobuf 负载比 JSON 大?

java - android - 倒计时随着时间的减少

java - 方法 include 在 mongodb java 中未定义

java - 自动化/处理第 5 个下拉列表 url https ://jedwatson. github.io/react-select/named as Github users(Aysnc with fetch.js)

javascript - ProtoBuf.js 如何在编码对象时过滤额外字段