[英]Solve override compilation error in protobuf java generated files
我有以下設置:
我的 POM 中有以下依賴項:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.14.0</version>
</dependency>
我有一個非常簡單的原型文件:
syntax = "proto3";
package com.ziath.genericdecoderserver;
option java_outer_classname = "DecodePackage";
message DecodeData {
string template = 1;
bytes image = 2;
int32 startColumn = 3;
int32 endColumn = 4;
}
我正在使用版本 3.14.0 生成 proto 文件,win64 的二進制文件:
PS C:\Users\neilb\Documents\GitHub\GenericDecoderServer\src\main\protobuf\bin> .\protoc.exe --version
libprotoc 3.14.0
這與我要引入的 maven 依賴項匹配。但是,生成的文件在覆蓋注釋中存在錯誤:
@java.lang.Override
public com.ziath.genericdecoderserver.DecodePackage.DecodeData buildPartial() {
com.ziath.genericdecoderserver.DecodePackage.DecodeData result = new
com.ziath.genericdecoderserver.DecodePackage.DecodeData(this);
result.template_ = template_;
result.image_ = image_;
result.startColumn_ = startColumn_;
result.endColumn_ = endColumn_;
onBuilt();
return result;
}
報告的錯誤是:
The method buildPartial() of type DecodePackage.DecodeData.Builder must override a superclass method
所以這個方法在 Builder class 中定義為:
public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
// @@protoc_insertion_point(builder_implements:com.ziath.genericdecoderserver.DecodeData)
com.ziath.genericdecoderserver.DecodePackage.DecodeDataOrBuilder {
Eclipse 是正確的,方法 buildPartial 不在 protobuf 引用的任何一個接口中,因此看起來版本不匹配,但版本相同。 此生成的代碼中存在許多錯誤。 有沒有人知道問題是什么,甚至以前見過這個,因為我的搜索沒有顯示任何內容?
謝謝。
干杯,
尼爾
解決了。 該項目是使用 Spring Initilaser 創建的,由於某種原因,java 版本在 eclipse 中為 1.5。 1.5 不允許覆蓋接口方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.