只是有一個在問題的protobuf的小問題:最裏面的地圖使用subData
和外部映射使用SubDataList
,但它應該是倒過來:
message DataCollectionMessage {
message SubData {
message SubDataList {
repeated string data = 1;
}
map<string, SubDataList> parameters = 1;
}
map<string, SubData> parameters = 1;
}
(我也已經大寫SubData
一致性)
生成的Java代碼將具有以下類(剪斷和重新排序爲清楚起見):
public static final class DataCollectionMessage {
public Map<String, DataCollectionMessage.SubData> getParametersMap() { ... }
public static final class SubData {
public Map<String, DataCollectionMessage.SubData.SubDataList> getParametersMap() { ... }
public static final class SubDataList {
public ProtocolStringList getDataList() { ... }
}
}
}
請注意,SubDataList
有一個ProtocolStringList
,這就像List<String>
。
如果您得到不同的結果,請發佈您正在使用的protobuf文件以及生成的Java代碼的相關部分。
來源
2017-08-25 01:57:58
tom
消息SubDataList重複的字符串數據= 1; } 消息子數據 { map parameters = 1;數據收集消息 { } map parameters = 1; } –
看起來你已經解決了你的問題,這很好。您可以將該評論寫爲答案並將其標記爲已接受,或者如果您認爲該評論對其他人沒有價值,請將其刪除。 – tom
如果您的評論不是您的問題的解決方案,請解釋您現在得到的錯誤消息(因爲它對我來說很合適)。 – tom