什么是Java 9中的开放模块以及如何使用它
问题内容:
带有 open 关键字的模块之前和不带有 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;
}
结果带有编译时错误。
希望能帮助到你。