Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java9模块,多个模块是否能够导出同一个包?_Java_Java 9_Java Module - Fatal编程技术网

使用Java9模块,多个模块是否能够导出同一个包?

使用Java9模块,多个模块是否能够导出同一个包?,java,java-9,java-module,Java,Java 9,Java Module,我正在尝试使用适合Java9模块系统的最佳实践,这样我就可以少做一些工作来获得好处(而我们的系统现在确实可以从一些模块化中受益) 根据当前标准,模块A是否允许导出包com.example.foo,模块B是否允许导出包com.example.foo 作为一个相关的问题,如果相关的话,就是这一点是否已经得到解决,或者它是否仍然不是最终的。根据最新的信息,模块系统确保“每个模块最多读取一个定义给定包的模块,并且定义同名包的模块不会相互干扰。”“当模块中的代码引用包中的类型时,保证在该模块中或在该模块读

我正在尝试使用适合Java9模块系统的最佳实践,这样我就可以少做一些工作来获得好处(而我们的系统现在确实可以从一些模块化中受益)

根据当前标准,模块A是否允许导出包com.example.foo,模块B是否允许导出包com.example.foo

作为一个相关的问题,如果相关的话,就是这一点是否已经得到解决,或者它是否仍然不是最终的。

根据最新的信息,模块系统确保“每个模块最多读取一个定义给定包的模块,并且定义同名包的模块不会相互干扰。”“当模块中的代码引用包中的类型时,保证在该模块中或在该模块读取的其中一个模块中定义该包。”

这意味着,如果在构建时和运行时,没有任何模块同时依赖于A和B,并且A和B彼此不依赖,则两个不同的模块可能会导出相同的包。理论上,您可以有两个模块导出相同的包,并将它们一次一个地与另一个依赖的模块一起使用


我还建议,正如已经提出的那样,最好的做法是由一个模块而不是两个模块导出一个包。

不知道,但我怀疑您应该开始对模块进行这样的操作,因为它仍然违反(特别是CRP中的“不可分离”)我想你的意思是A和B同时被加载到同一个JVM中?对于这个问题的结束者:链接的问题是关于未导出的包,而这个问题是关于导出的包。我相信这个区别是相关的。@jay是的,它们肯定是不同的问题。我不确定如何”编辑此问题,以解释当我的标题使用“导出”一词,而假定的副本明确是关于“未导出”时,它是如何不同的“。我想这意味着类似于日志框架的东西,具有多个可能的依赖项,提供相同的类是可以接受的,但几乎所有其他东西都需要一致地划分。