使用google protobuf for Java'可选重复'

Har*_*nan 24 java protocol-buffers

我正在使用java使用Google Protobuf.我写了一个声明

optional repeated   string  users = 9;
Run Code Online (Sandbox Code Playgroud)

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

message.proto:39:57: Missing field number.
Run Code Online (Sandbox Code Playgroud)

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

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

PS:如果我避免使用可选关键字然后它正在编译,但在java中我得到一个类找不到错误 com.google.protobuf.ProtocolStringList

提前致谢

Mar*_*ell 36

所有你需要的是:

repeated string users = 9;
Run Code Online (Sandbox Code Playgroud)

您不需要optional修饰符,看起来它使解析器混乱.一个repeated领域本质上是optional:你只是不添加任何价值.

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

  • 谢谢您的回答.我的编译器版本是2.6,我使用的是库2.5.现在它正在运作.非常感谢你. (2认同)
  • 那么,如果我想区分空数组(=new type [0])和无数组(=null)怎么办?额外的布尔字段还是有更好的解决方案? (2认同)