[英]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.