在 protobuf 3 中,如何定义 nullable
repeated
字段?用户需要知道该字段是否曾经被设置过。 optional
关键字不适用于 repeated
字段。
例如,假设我们有一个重复字段:
message Result {
repeated string url = 1;
}
用户如何判断
url
是否设置为空数组的默认值或从未设置过?在Java中我想知道new String[0]
和null
之间的区别。
那不是protobuf可以直接表达的东西;你需要添加一个层,这正是
wrappers.proto中的
StringValue
所做的,所以:
syntax = "proto3";
import "google/protobuf/wrappers.proto";
message Result {
repeated StringValue urls = 1;
}