java 9:在 module-info.java 中,我是否必须再次提及已经在源中导入的包((根据需要)

2 java java-9 java-module

使用 java 9 模块,如果我在我的代码中使用 java.xml...
1) 我将使用 import 语句导入 xml 包...
2) 如果我没有提到在模块声明中需要这个包我的模块...
-我的模块的编译会起作用吗.. ??
我猜......不......并且提到module-info.java上需要xml包......它可能会起作用。
所以......我想知道的是......这不是冗余......每个导入包都是隐含......必需的。(除非我需要更好地理解模块)

有没有办法提到模块声明中需要所有导入的包,否则在module-info.java中可能会提到一个很长的列表?

Zhe*_*lov 5

首先,在module-info.java你提到模块,而不是包。例如java.xml是一个包含大约 25 个包的模块。因此,如果您的模块使用模块中的 10 个包java.xml,则不必在 中重复 10 次module-info.javarequires java.xml只需编写一次。因此,庞大的依赖项列表实际上并不庞大。

如果你真的想跳过所有这些声明,你可以不创建module-info.java(但我不建议这样做)。没有的模块module-info.java称为自动模块,它隐含地需要所有其他模块。

  • 默认情况下包含 _java.xml_ 模块(尝试使用 `java --limit-modules java.se --list-modules`),因此无需担心。顺便说一下,模块和包之间的混淆是为什么我对前者使用 _italics_ 而对后者使用“代码格式”。 (2认同)