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 для разработки, и я думаю, что он почему-то не может решить все правильно:
Когда я смотрю на иерархию типов, я вижу следующее:
SearchRequest extends GeneratedMessageV3 extends AbstractMessage extends AbstractMessageLite
и AbstractMessageLite implements MessageLite
, которые должны иметь функцию Builder newBuilderForType();
Но по некоторым причинам Eclipse жалуется и не может решить эту проблему.