Java protobuf устанавливает поля в сообщении в корне и во вложенных сообщениях - PullRequest
0 голосов
/ 24 января 2019

Как мы создаем экземпляр сообщения из protobuf, который имеет вложенные сообщения в Java.

Использование протокола, описанного ниже, путем установки полей в корне и полей во вложенных сообщениях protobuf и возврата экземпляра всего сообщения.

message Envelope {

  message quantity {
    optional string a = 1;
    optional string b = 2;
  }
  message quality {
    required string c = 1;
  }

  optional string e = 1;
}

В приведенном выше сообщении я хочу вернутьсяэкземпляр Envelope, устанавливая поля в корне, который равен «e», а также устанавливая поля во вложенных сообщениях, таких как «a», «b» в «количество» и «c» в «качество».Как я могу это сделать?

1 Ответ

0 голосов
/ 09 июля 2019

В своем определении protobuf вы создали 3 типа сообщений, два из которых вложены в другой.

Это вложение касается только пространства имен. Чтобы включить их в Envelop, вы должны написать:

message Envelope {

  message Quantity {
    optional string a = 1;
    optional string b = 2;
  }
  message Quality {
    required string c = 1;
  }

  optional string e = 1;
  optional Quantity quantity = 2;
  optional Quality quality = 3;
}
...