0
我正在使用Google Protobuf與Java。我在發送空的重複字符串時遇到問題。Google Protobuf空的列表顯示大小1
message OurPokemonMessage {
....
repeated string learnableMoves = 10;
}
現在,當我使用的Protobuf方法來添加一個集合(裏面是空的)這樣的:使用這個消息時,我創建的字符串的新列表
message.addAllLearnableMoves(someEmptyListOfString);
現在,我得到一個元素在列表這是一個空列表。
這是我如何使用信息創建字符串列表:
new ArrayList<>(message.getLearnableMovesList())
此數組列表包含一個空字符串元素。所以我調試了這條消息並評估了兩個條件並發現了奇怪的結果。
message.getLearnableMovesList()//clearly shows empty list
(com.google.protobuf.UnmodifiableLazyStringList) [] //Empty
message.getLearnableMovesList().size()//shows the size of list is 1
(int) 1 //Size is 1
有沒有人有類似的問題?有什麼辦法可以解決這個問題嗎?
而不是向我們展示的片段,你能提供一個[MCVE ]?這將使我們更容易重現問題。 –
我試圖用一個較小的例子來重現問題,但它並不在這種情況下。由於我正在使用複雜的Protobuf結構並通過網絡發送消息,因此我不太確定如何提供適當的示例:/ – Sneh
如果您正在努力在一個小例子中重現該問題,可能在其他地方存在問題對我們來說很難幫到。嘗試複製您的整個項目,並逐漸刪除位,直到您找到問題或有一個小例子。 –