Метод emptyIntList () не определен - PullRequest
1 голос
/ 29 марта 2019

Я новичок в Google Protobuf .Попытался поиграть с ним, используя файл student.proto .

syntax = "proto3";
package rld;

option java_package = "com.rld";
option java_outer_classname = "StudentDTO";

message Student {
    string name = 1;
    int32 roll = 2;  
    repeated int32 mark = 3; //Marks in various subjects
}

message StudentDatabase {
  repeated Student student = 1;
}

Затем я попытался скомпилировать его, используя приведенную ниже команду компилятора Protobuf.С здесь я скачал компилятор.

protoc -I=. --java_out=. ./student.proto

Он успешно скомпилирован и сгенерирован StudentDTO.java , но с ошибками.Внутри класса используются два метода ' emptyIntList () ' и ' newIntList () ', но они не определены.

Теперь мой вопрос: какустранить эти ошибки или я что-то упустил?

1 Ответ

1 голос
/ 29 марта 2019

Будучи новичком, кажется, я забыл обновить Google Protobuf Runtime при обновлении Protobuf Compiler .Обе версии должны совпадать.

Вот 2 решения.

  1. Пользователи Maven - включите следующую зависимость в ваш файл POM .
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>x.y.z</version>
    </dependency>
Пользователи не Maven - Включить protobuf-java-xyzjar в ваш путь к классам.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...