Сгенерированные классы Java для protobuf3 имеют ошибки компиляции

Файлы Java, созданные с помощью libprotoc 3.11.4, не соответствуют спецификации API.

Я сгенерировал код java из небольшого примера:

syntax = "proto3";

package tutorial;

option java_package = "com.example";
option java_outer_classname = "SearchRequestExample";

message SearchRequest {
  string query = 1;
  int32 page_number = 2;
  int32 result_per_page = 3;
}

Я добавил в свой проект maven следующую зависимость:

        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>3.11.4</version>
        </dependency>

Но когда я смотрю на свои java-файлы, у меня возникает несколько ошибок компиляции. А именно:

  • Метод newBuilderForType() типа SearchRequestExample.SearchRequest должен переопределять метод суперкласса
  • Метод toBuilder() типа SearchRequestExample.SearchRequest должен переопределять метод суперкласса.
  • Метод getDefaultInstanceForType() типа SearchRequestExample.SearchRequest.Builder должен переопределять метод суперкласса
  • и т.п.

Как я могу исправить эту проблему?

Изменить: Дополнительная информация: я использую Eclipse для разработки, и я думаю, что он каким-то образом не может все правильно решить:

Когда я смотрю на иерархию типов, я вижу следующее:

SearchRequest extends GeneratedMessageV3 extends AbstractMessage extends AbstractMessageLite а также AbstractMessageLite implements MessageLite который должен иметь функцию Builder newBuilderForType(); Но по некоторым причинам Eclipse жалуется и не может решить эту проблему.

0 ответов

Другие вопросы по тегам