假设您有一个重复字段。
message Foo {
optional int32 val = 1;
}
message Bar {
repeated Foo foo = 1;
}
这将生成方法
List<Foo> getFooList()
有没有什么情况
getFooList
会返回null
?或者它总是返回 List
,即使它是空的?
不,不存在返回
null
的情况。事实上,Java protobuf 生成的类上的字段访问器都不会返回 null
;如果该字段不存在,它们总是返回默认值。同样,设置器不允许您设置 null
。
请注意,除非另有说明,否则 Java 协议缓冲区方法都不会接受或返回 null。
参考:https://developers.google.com/protocol-buffers/docs/reference/java- generated
重复字段的默认值为空(通常是相应语言的空列表)。
来源:https://developers.google.com/protocol-buffers/docs/proto3#default