2016-09-17 9 views
0

私はJavaでGoogle Protobufを使用しています。私は空の繰り返し文字列を送ることに問題があります。Google Protobuf空のリストサイズ1を表示

message OurPokemonMessage { 
     .... 
     repeated string learnableMoves = 10; 
} 

私はこのような(空である)のコレクションを追加するためにいるProtobufメソッドを使用します。

message.addAllLearnableMoves(someEmptyListOfString); 

私はこのメッセージを使用して文字列の新しいリストを作成するときに今、私は一つの要素を取得しますリストは空のリストです。

これは、私がメッセージを使用して文字列のリストを作成する方法である:

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

スニペットを表示するのではなく、[mcve ]?それは私たちが問題を再現するのをはるかに簡単にします。 –

+0

私は小さな問題で問題を再現しようとしましたが、その場合はそうではありません。私は複雑なProtobuf構造を使用しており、ネットワークを介してメッセージを送信しているので、適切な例を提供する方法については正確にはわかりません:/ – Sneh

+0

小さな例で再現するのに苦労している場合は、私たちが助けてくれるのはとても難しいでしょう。プロジェクト全体をコピーして、問題が見つかるまで、または少しの例があるまで、ビットを徐々に削除してみてください。 –

答えて

0

私は後でprotobufライブラリに問題はなかったことに気付きました。問題は、私のlearnableMoveフィールドに、空の文字列を追加して、toString()を使用して印刷したときに[]が表示され、リストのサイズが1であったのに対し、

関連する問題