Сгенерированные классы 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 жалуется и не может решить эту проблему.