Java协议缓冲区是否可以在重复字段的列表getter上返回null?

Kat*_*Kat 9 java protocol-buffers

假设你有一个重复的领域.

message Foo {
  optional int32 val = 1;
}

message Bar {
  repeated Foo foo = 1;
}
Run Code Online (Sandbox Code Playgroud)

这将生成该方法

List<Foo> getFooList()
Run Code Online (Sandbox Code Playgroud)

是否存在getFooList将返回null的情况?或者它会返回一个List,即使它是空的吗?

Ken*_*rda 10

不,没有返回的情况null.事实上,Java protobuf生成的类中没有任何字段访问器返回null; 如果该字段不存在,它们始终返回默认值.同样,setter不允许你设置null.

  • @hongsy 抱歉,但我已经十年没有看过 protobuf-java 文档了。我不记得关于他们的任何事情,而且他们可能都已经改变了。 (2认同)