gpt4 book ai didi

java - 更改 Protocol Buffer 中字段的数据类型

转载 作者:行者123 更新时间:2023-12-02 05:10:42 24 4
gpt4 key购买 nike

您好,为了保持向后兼容性,可以更改 Protocol Buffer 中字段的数据类型吗?例如

旧消息:

message Connection{
optional string wifi = 1;
optional int32 wifiCode = 2;
}

新消息:

message Connection{
message wifiConnection{
optional string name = 1;
optional int32 code = 2;
}

optional wifiConnection wifi = 1;
}

所以基本上我没有更改字段的标签号也没有重命名它,但我更改了数据类型。那么这会向后兼容吗?如果获取使用先前模式创建的旧原型(prototype)对象,可以通过这个新模式创建的对象来解析它吗?

最佳答案

不,它不会向后兼容。 Protocol Buffer 存储数据大致如下

Code1 + wire-type1 + {Data1}
Code2 + wire-type2 + {Data2}
Code3 + wire-type3 + {Data3}

因此第一个旧格式的存储方式如下

1 + wire-type {Wifi-Data}
2 + wire-type {Wifi-Code-Data}

新消息的存储方式如下

1 + wire-type { 
1 + wire-type {Wifi-Data}
2 + wire-type {Wifi-Code-Data}
}

关于java - 更改 Protocol Buffer 中字段的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27362742/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com