如何在protobuf3中将映射添加到消息中
How to add map to message in protobuf3
我正在尝试使用自 protobuf3 以来支持的地图创建消息。我不知道如何将地图添加到消息中。
原始文件片段:
message MyData {
map<string, Queue> myMap = 1;
message Queue {
repeated float position = 1;
}
}
Java片段:
MyData.Builder dataBuilder = SnowflakeData.newBuilder();
dataBuilder. ???
我可以得到 dataBuilder.getMyMap()
,但是 "set"
有问题
谢谢
protoc
在消息的生成器中生成以下方法:
public Map<String, Queue> getMutableMyMap()`
可用于向您的字段添加元素:
// ...
MyData.Builder dataBuilder = MyData.newBuilder();
Map<String, Queue> map = dataBuilder.getMutableMyMap();
map.put("key1", queue);
Here 是 google 生成的 java 代码的文档,关于映射字段的部分。
.getMutableXMap()
已弃用。相反,您可以使用 .putX()
.
使用 putAllxxx()
MyData.Builder dataBuilder = SnowflakeData.newBuilder();
dataBuilder.putAllMyMap(targetMap)
我正在尝试使用自 protobuf3 以来支持的地图创建消息。我不知道如何将地图添加到消息中。
原始文件片段:
message MyData {
map<string, Queue> myMap = 1;
message Queue {
repeated float position = 1;
}
}
Java片段:
MyData.Builder dataBuilder = SnowflakeData.newBuilder();
dataBuilder. ???
我可以得到 dataBuilder.getMyMap()
,但是 "set"
谢谢
protoc
在消息的生成器中生成以下方法:
public Map<String, Queue> getMutableMyMap()`
可用于向您的字段添加元素:
// ...
MyData.Builder dataBuilder = MyData.newBuilder();
Map<String, Queue> map = dataBuilder.getMutableMyMap();
map.put("key1", queue);
Here 是 google 生成的 java 代码的文档,关于映射字段的部分。
.getMutableXMap()
已弃用。相反,您可以使用 .putX()
.
使用 putAllxxx()
MyData.Builder dataBuilder = SnowflakeData.newBuilder();
dataBuilder.putAllMyMap(targetMap)