模块描述符文件允许导入语句为什么?

Ng *_*rma 4 java java-module module-info java-11

请任何人解释一下为什么允许导入模块描述符文件?
模块描述符文件中的语句的用途是什么import

import java.util.*;

module superman {
}
Run Code Online (Sandbox Code Playgroud)

Jac*_* G. 5

一种用途是如果您使用该provides指令:

module superman {
    provides com.github.me.superhero.Superhero with com.github.me.superhero.Batman;
    provides com.github.me.superhero.Superhero with com.github.me.superhero.IronMan;
}
Run Code Online (Sandbox Code Playgroud)

使用导入看起来像:

import com.github.me.superhero.*;

module superman {
    provides Superhero with Batman;
    provides Superhero with IronMan;
}
Run Code Online (Sandbox Code Playgroud)

  • JLS 的 [§7.3 编译单元](https://docs.oracle.com/javase/specs/jls/se13/html/jls-7.html#jls-7.3) 似乎支持这个答案:“A _modular编译单元_由一个“module”声明(第7.7节)组成,前面可以选择“import”声明。“import”声明允许来自该模块和其他模块中的包的类型,以及类型的“static”成员提到在“模块”声明中使用它们的简单名称”。有趣的是,我在 _§7.7 模块声明_(包括小节)中找不到有关 import 语句的任何内容。 (3认同)