显示大小1的Google Protobuf空列表

时间:2016-09-17 16:47:11

标签: java protocol-buffers

我正在使用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

有没有人遇到类似的问题?有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

所以后来我意识到protobuf库没有问题。问题是在我的learnableMove字段中,我添加了一个空字符串,当使用toString()打印时显示[],而列表的大小为1.