我正在使用Google Protobuf和Java。发送空重复字符串时遇到问题。
message OurPokemonMessage {
....
repeated string learnableMoves = 10;
}
现在当我使用Protobuf方法添加一个集合(它是空的)时,这样:
message.addAllLearnableMoves(someEmptyListOfString);
现在,当我使用此消息创建一个新的String列表时,我在列表中得到一个空元素列表。
这是我使用消息创建字符串List的方法:
new ArrayList<>(message.getLearnableMovesList())
此数组列表包含空字符串元素。所以我调试了消息并评估了2个条件并发现了奇怪的结果。
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
有没有人遇到类似的问题?有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
所以后来我意识到protobuf库没有问题。问题是在我的learnableMove字段中,我添加了一个空字符串,当使用toString()打印时显示[],而列表的大小为1.