Java Protocol Buffers 可以在重复字段的列表 getter 上返回 null 吗?

问题描述 投票:0回答:3

假设您有一个重复字段。

message Foo {
  optional int32 val = 1;
}

message Bar {
  repeated Foo foo = 1;
}

这将生成方法

List<Foo> getFooList()

有没有什么情况

getFooList
会返回
null
?或者它总是返回
List
,即使它是空的?

java protocol-buffers
3个回答
16
投票

不,不存在返回

null
的情况。事实上,Java protobuf 生成的类上的字段访问器都不会返回
null
;如果该字段不存在,它们总是返回默认值。同样,设置器不允许您设置
null


2
投票

请注意,除非另有说明,否则 Java 协议缓冲区方法都不会接受或返回 null。

参考:https://developers.google.com/protocol-buffers/docs/reference/java- generated


1
投票

重复字段的默认值为空(通常是相应语言的空列表)。

来源:https://developers.google.com/protocol-buffers/docs/proto3#default

© www.soinside.com 2019 - 2024. All rights reserved.