Я пытаюсь использовать расширения с буфером протокола Google. У меня есть один «основной» файл прото и несколько других файлов «прото», которые «расширяют» основной файл.
В моем Java-коде я не уверен на 100%, как правильно добавить повторяющееся сообщение. Когда я запускаю написанный мной код Java, метод toString () показывает, что атрибуты расширения добавлены, но не декодируются должным образом (возможно, потому что я выполнил вызов build () для добавленного объекта Collar).
Как правильно добавить повторяющиеся элементы в расширенные элементы в файле прото?
File1.proto
package protocol_buffer;
option java_outer_classname = "PetClass";
message Pet {
optional string pet_name = 1;
extensions 100 to 199;
}
File2.proto
import "File1.proto";
option java_outer_classname = "CollarClass";
message Collars {
optional string collar_type = 1;
optional string collar_color = 2;
}
extend pet {
repeated Collars collar = 100;
}
MyFile.java
Pet pet = Pet.newBuilder()
.setPetName("Fido")
.addExtension(CollarClass.collar,
Collar.newBuilder()
.setCollarType("round")
.setCollarColor("brown")
.build()
)
.build();
System.out.println(pet.toString());