如何在protobuf 3中定义可为空的重复字段

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

protobuf 3 中,如何定义 nullable

repeated
字段?用户需要知道该字段是否曾经被设置过。
optional
关键字不适用于
repeated
字段。 例如,假设我们有一个重复字段:

message Result {
  repeated string url = 1;
}

用户如何判断

url
是否设置为空数组的默认值或从未设置过?在Java中我想知道
new String[0]
null
之间的区别。

protocol-buffers protocol-buffers-3
1个回答
0
投票

那不是protobuf可以直接表达的东西;你需要添加一个层,这正是

wrappers.proto
中的 StringValue 所做的,所以:

syntax = "proto3";
import "google/protobuf/wrappers.proto";
message Result {
    repeated StringValue urls = 1;
}
© www.soinside.com 2019 - 2024. All rights reserved.