Java 9 模块中的模块描述符的重要性?
一个**模块**是以**包**的形式组织的代码集合,以及静态资源,例如**属性文件**或其他文件。它向外部环境提供使用该模块所需的所有信息。**模块描述符**是**模块**系统的一个关键组成部分,它是名为“**module-info.java**”的文件中指定的模块声明的编译版本,该文件位于模块目录层次结构的根目录下。
模块通过以下模块声明来描述自身
module com.myproject.module1 {
requires com.myproject.module2;
exports com.myproject.project1;
exports com.myproject.project2;
}以下是描述的一些模块描述符
- **module 模块名:**声明一个名为模块名的模块。
- **requires 模块名:**指定我们的模块依赖于模块名,允许此模块访问目标模块中导出的公共类型。
- **requires transitive 模块名:**任何依赖于此模块的模块都会自动依赖于模块名。
- **exports 包名:**它表示我们的模块为每个需要此模块的模块导出包名中的公共成员。
- **exports 包名 to 模块名:**与上面相同,但限制了哪些模块可以使用包名中的公共成员。
- **uses 类名:**它使当前模块成为类名的服务使用者。
- **provides 类名 with 类名.实现:**它将类名.实现类注册为提供类名服务实现的服务。
- **opens 包名:**它允许其他模块使用反射来访问包名中的私有成员。
- **opens 包名 to 模块名:**它执行相同的操作,但限制了哪些模块可以对包名中的私有成员进行反射访问。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP