gpt4 book ai didi

java - 如何使用 proto3 oneof 功能复制字段名称?

转载 作者:行者123 更新时间:2023-11-30 05:25:43 25 4
gpt4 key购买 nike

Proto3 支持 oneof 功能,您可以在一条消息中包含多个字段,并且最多同时设置一个字段。

由于一次会设置一个字段,因此原型(prototype)模式中存在重复的字段名称是合理的。问题是原型(prototype)生成器将其视为重新定义。

我想这样做,因为在我的情况下,这使得 json 序列化为 JsonFormat简单。

例如,我可能喜欢

message MyResponse {
int32 a = 1;
string b = 2;
oneof Properties {
PropertiesType1 properties = 3;
PropertiesType2 properties = 4;
PropertiesType3 properties = 5;
PropertiesType4 properties = 6;
}
}

有没有办法解决这个问题,或者必须努力重新定义原型(prototype)?可能的解决方法可能是使用 map<string, Properties> properties = 9;

最佳答案

暂时忽略 JSON;在大多数语言/框架中,您将通过名称来访问这些属性,无论是获取值还是检查设置了哪个属性。如果名称冲突:你不能这样做。

此外:anyof 允许同一类型用于可区分联合中的多个成员,在这种情况下,您想要做的事情会变得更加困惑。

最后,回到 JSON:解析器看到 "properties": - 接下来它期望什么一旦解析了该值,在可区分联合中哪个字段被视为“设置”?

所以不,出于多种原因:这是不允许的。

关于java - 如何使用 proto3 oneof 功能复制字段名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58667829/

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