Сгенерированные java классов для protobuf3 имеют ошибки компиляции - PullRequest
0 голосов
/ 07 мая 2020

Java файлов, созданных с помощью libproto c 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;
}

I добавила следующую зависимость в мой проект 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 должен переопределять метод суперкласса
  • et c.

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

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

Eclipse

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

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

...