“可选重复”与谷歌原型buf for Java

2022-09-01 05:16:55

我正在使用Java的Google Protobuf。我写了一个声明,像

optional repeated   string  users = 9;

当我尝试编译时,我收到一个错误,如

message.proto:39:57: Missing field number.

我想要的只是创建一个字符串数组。

任何人都可以帮我解决它。

PS:如果我避免了可选关键字,那么它正在编译,但在java中,我得到了一个类未找到错误com.google.protobuf.ProtocolStringList

提前致谢


答案 1

您所需要的只是:

repeated string users = 9;

您不需要修饰符,并且看起来会混淆解析器。字段本质上是:您只是不添加任何值optionalrepeatedoptional

至于 :检查您正在使用的 .proto 编译器 (protoc) 版本是否与您正在使用的库版本完全匹配。com.google.protobuf.ProtocolStringList


答案 2

生成的文件包含用于检索计数的方法。例如 int getXXXCount();一个问题是,这种方法不适用于与原型 def 的先前版本相对应的生成文件。


推荐