一个模块 是代码的组织类的形式收集封装 和静态资源,如财产 的文件 或他人。它为外部环境提供了使用该模块所需的所有信息。该模块 描述符 是的主要来源模块 系统,它的编制在一个名为“文件中指定一个模块声明的版本module-info.java在模块的目录层次结构的根”文件。
该模块通过以下模块声明来描述自身
module com.myproject.module1 { requires com.myproject.module2; exports com.myproject.project1; exports com.myproject.project2; }
以下是一些描述的模块描述符:
模块模块。名称: 声明一个名为module.name的模块。
需要模块。名称: 指定我们的模块取决于该模块。名称,允许该模块访问目标模块中导出的公共类型。
需要一个传递模块。名称: 任何依赖于此模块的模块都将自动依赖于module.name。
export pkg.name: 表示我们的模块将pkg.name包中的公共成员导出到需要此模块的每个模块。
将pkg.name导出到module.name:与上面相同,但是限制了哪些模块可以使用pkg.name包中的公共成员。
使用类。名称:它 使当前模块成为服务类名的使用者。
为class.name提供class.name.impl: 它将class.name.impl类注册为提供class.name服务实现的服务。
打开pkg.name:它允许其他模块使用反射来访问包pkg.name的私有成员。
打开pkg.name到module.name:这样做,但是限制了哪些模块可以对pkg.name中的私有成员进行反射访问。