无法在默认包之外引用生成的源 class
Can't reference generated-sources class outside of default package
我正在使用 Google 的 Protocol Buffer(结合 Protocol Buffers maven 插件),它将 .proto 文件编译成 class。我可以在默认包中完美地使用生成的 class,但不能在默认包之外。我真的不知道如何更好地解释它所以我要给你看一些图片。
我试过对 Hrp class 进行子class,但这不起作用(生成的 class 是最终的)。每次我重新生成 Hrp class.
时也不能移动 class
我不确定这是否相关,但生成的 class 是 public final
。它包含一个空的 private
构造函数。
我也试过为生成的源文件夹设置生成的源包前缀,但这也不起作用。
如有任何帮助,我们将不胜感激。
尝试将 package id 添加到您的 Protocol Buffers 定义中。参见 Protocol Buffers Package
即
syntax = "proto3";
package MyPackage;
option optimize_for = SPEED;
message Product {
repeated ASale sale = 1;
}
然后当您生成 Java~Protocol~Buffers 代码(使用协议)时,它将在包 MyPackage[=26= 中],您将能够以正常方式将其导入到您的 java 代码中。
在java中,您不能从默认包导入任何东西;我相信这是你的问题。参见 How to access java-classes in the default-package?
我正在使用 Google 的 Protocol Buffer(结合 Protocol Buffers maven 插件),它将 .proto 文件编译成 class。我可以在默认包中完美地使用生成的 class,但不能在默认包之外。我真的不知道如何更好地解释它所以我要给你看一些图片。
我试过对 Hrp class 进行子class,但这不起作用(生成的 class 是最终的)。每次我重新生成 Hrp class.
时也不能移动 class我不确定这是否相关,但生成的 class 是 public final
。它包含一个空的 private
构造函数。
我也试过为生成的源文件夹设置生成的源包前缀,但这也不起作用。
如有任何帮助,我们将不胜感激。
尝试将 package id 添加到您的 Protocol Buffers 定义中。参见 Protocol Buffers Package
即
syntax = "proto3";
package MyPackage;
option optimize_for = SPEED;
message Product {
repeated ASale sale = 1;
}
然后当您生成 Java~Protocol~Buffers 代码(使用协议)时,它将在包 MyPackage[=26= 中],您将能够以正常方式将其导入到您的 java 代码中。
在java中,您不能从默认包导入任何东西;我相信这是你的问题。参见 How to access java-classes in the default-package?