在 Java 9 的模块声明中,有两种结构:
exports com.foo;
和
opens com.foo;
Whereexports
授予编译时访问,而opens
允许运行时访问,作为反射和资源。
opens
有一个宽大处理exports
,您可以将整个模块定义为打开,结果与显式打开每个包相同:
open module com.mod {
但是没有类似的结构
exported module com.mod {
我的问题:为什么会这样;已做出哪些决定允许一次打开整个模块但不允许导出?