Я использую Google Protobuf с Java. У меня возникла проблема с отправкой пустой повторяющейся строки.Google Протобуф Пустой список, показывающий размер 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
Есть ли у кого-либо подобные проблемы? Есть ли способ разрешить это?
Вместо того, чтобы показывать нам фрагменты, вы могли бы предоставить [mcve ]? Это облегчит нам воспроизведение проблемы. –
Я попытался воспроизвести проблему с меньшим примером, но в этом случае это не так. Поскольку я использую сложную структуру Protobuf и отправляю сообщения по сети, я не совсем уверен, как обеспечить правильный пример:/ – Sneh
Если вы пытаетесь воспроизвести его на небольшом примере, скорее всего, это проблема в другом месте, нам будет очень сложно помочь. Попробуйте скопировать весь проект и постепенно удалять биты до тех пор, пока вы не найдете проблему или не представите небольшой пример. –