我正在尝试使用protobuf3支持的地图创建消息。我无法弄清楚如何将地图添加到消息中。
Proto文件片段:
message MyData {
map<string, Queue> myMap = 1;
message Queue {
repeated float position = 1;
}
}
Java片段:
MyData.Builder dataBuilder = SnowflakeData.newBuilder();
dataBuilder. ???
我可以获得dataBuilder.getMyMap()
,但我对“设置”
由于
答案 0 :(得分:1)
protoc
在邮件构建器中生成以下方法:
public Map<String, Queue> getMutableMyMap()`
它可用于向您的字段添加元素:
// ...
MyData.Builder dataBuilder = MyData.newBuilder();
Map<String, Queue> map = dataBuilder.getMutableMyMap();
map.put("key1", queue);
Here是google关于生成的java代码的文档,有关地图字段的部分。
答案 1 :(得分:0)
.getMutableXMap()
已弃用。相反,您可以使用 .putX()
。
答案 2 :(得分:0)
使用 putAllxxx()
MyData.Builder dataBuilder = SnowflakeData.newBuilder();
dataBuilder.putAllMyMap(targetMap)