我是 Google Protobuf 的新手。尝试使用下面的 student.proto 文件播放它。
syntax = "proto3";
package rld;
option java_package = "com.rld";
option java_outer_classname = "StudentDTO";
message Student {
string name = 1;
int32 roll = 2;
repeated int32 mark = 3; //Marks in various subjects
}
message StudentDatabase {
repeated Student student = 1;
}
然后我尝试使用下面的Protobuf编译器命令进行编译。我从here下载了编译器。
protoc -I=. --java_out=. ./student.proto
它成功编译并生成了 StudentDTO.java ,但有错误。 类内部使用了两种方法' emptyIntList()'和' newIntList()',但未定义。
现在我的问题是如何解决这些错误,或者我缺少什么?
答案 0 :(得分:1)
是新手,似乎我忘记了更新 Protobuf编译器时更新 Google Protobuf运行时。两个版本必须匹配。
这是2个解决方案。
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>x.y.z</version>
</dependency>