前面有 open
关键字的模块和没有它的模块有什么区别?例如:
open module foo {
}
module foo {
}
最佳答案
为了提供对模块的反射访问,Java 9 引入了 open 关键字。
您可以通过在模块声明中使用 open 关键字来创建开放模块。
开放模块向其他模块授予对其所有包的反射访问权限。
例如,如果您想使用一些严重依赖反射的框架,例如Spring、Hibernate等,则可以使用该关键字为其启用反射访问。
您可以通过在包声明中使用 opens 语句来启用对模块的指定包的反射访问:
module foo {
opens com.example.bar;
}
或者在模块声明中使用open关键字:
open module foo {
}
但请记住,您不能将它们组合起来:
open module foo {
opens com.example.bar;
}
结果出现编译时错误。
希望有帮助。
关于java - 什么是 Java 9 中的开放模块以及如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46482364/