我正在使用Google的协议缓冲区(与Protocol Buffers maven插件结合使用),它将.proto文件编译成一个类。我可以完美地使用默认包中生成的类,但不能在它之外。我真的不知道如何更好地解释它,所以我会给你看一些照片。
我已经尝试了对Hrp类进行子类化,但这不起作用(生成的类是final)。每次重新生成Hrp类时,也不能选择移动类。
我不确定这是否相关,但生成的类是public final
。它包含一个空的private
构造函数。
我还尝试为生成的sources文件夹设置生成的源包前缀,但这也不起作用。
非常感谢任何帮助。
答案 0 :(得分:1)
尝试在协议缓冲区定义中添加包标识。见Protocol Buffers Package
即
syntax = "proto3";
package MyPackage;
option optimize_for = SPEED;
message Product {
repeated ASale sale = 1;
}
然后当你生成 Java~Protocol~缓冲区代码(使用protoc)时,它将在 MyPackage 包中,你可以将它导入到你的java中代码以正常方式。
在java中,您无法从默认包导入任何内容;我认为这是你的问题。见How to access java-classes in the default-package?