访问默认包中的 Java 类
在像 Grails 这样的协作项目中,开发人员可能会遇到需要访问在 Groovy 中创建的对象的情况来自命名包中的 Java 类的默认包。然而,由于 Java 打包的基本规则,这可能会带来挑战。
根据 Java 编程原理,默认包中的类不能直接从命名包访问。在 Java 2 标准版 (J2SE) 1.4 之前,允许使用导入语法(例如“import Unfinished;”)来导入默认包类。这种做法不再被允许。
要克服此限制,有两种选择。一种方法是通过将默认包类移动到命名包中来重构它。这涉及到在类文件的开头添加一个“package”指令,指定所需的包名称。
或者,如果可以访问由 Groovy 生成的源代码,则可以使用后处理来移动将默认包类放入其自己的专用包中,并添加适当的“package”指令。
需要注意的是,Java 虚拟机 (JVM) 严格禁止从未命名(默认)包,如 Java 开发工具包 (JDK) bug 6975015 中所述,特别是对于 JDK7 和 JDK8。
因此,要从命名包访问默认包类,有必要重新定位默认包类放入命名包中。
以上是如何从 Java 的命名包访问 Groovy 的默认包类?的详细内容。更多信息请关注PHP中文网其他相关文章!