如何从Java9模块导出所有包?
现在,对于我拥有的每个模块,我都需要明确指定要导出的包。例如:如何从Java9模块导出所有包?,java,java-9,java-module,java-platform-module-system,Java,Java 9,Java Module,Java Platform Module System,现在,对于我拥有的每个模块,我都需要明确指定要导出的包。例如: module core { exports cc.blynk.server.core; exports cc.blynk.server.core.protocol.handlers.decoders; exports cc.blynk.server.core.protocol.handlers.encoders; } 但是,这不是很方便。我想这样做: module core { exports cc
module core {
exports cc.blynk.server.core;
exports cc.blynk.server.core.protocol.handlers.decoders;
exports cc.blynk.server.core.protocol.handlers.encoders;
}
但是,这不是很方便。我想这样做:
module core {
exports cc.blynk.server.core.*;
}
有办法吗?此限制来自何处?否,您不能使用通配符导出模块内的所有包。您必须明确导出每个包 这是不允许的,因为这可能会在从不同模块导出的不同包中导致冲突,从而违背代码的目的
另外引用其中一个线程: 模块导出的包意味着是一个稳定的API 消费者可以信赖。出于这个原因,我们让模块成为作者 明确说明导出的包。这也降低了成本 多个模块不必要地导出同一个包的可能性。 此外,它还避免了在
com.abs.*
导出时未经限定,而com.abs.foo
导出时带有
资格
这对库开发人员来说是个大问题..不起作用。给出令牌“*”上的
语法错误,标识符应为@user435421什么不适合您?您是否阅读了答案的部分“…我们让模块作者明确说明导出的包。”解释了为什么*
不起作用。“不鼓励使用X…”意味着X仍然可以使用。我提出了一个编辑建议