在Java 9中,模块描述符在模块中的重要性是什么?

2023年 8月 31日 43.1k 0

在Java 9中,模块描述符在模块中的重要性是什么?

一个模块是以包和静态资源(如属性文件或其他)形式组织的类的集合。它向外部环境提供了使用该模块所需的所有信息。模块描述符是模块系统的关键来源,它是模块声明的编译版本,位于模块目录层次结构的根目录下的名为“module-info.java”的文件中。

模块通过以下模块声明来描述自身

module com.myproject.module1 {
requires com.myproject.module2;
exports com.myproject.project1;
exports com.myproject.project2;
}

登录后复制

以下是一些模块描述符的描述:

  • module module. name: 声明一个名为module.name的模块。
  • requires module. name: 指定我们的模块依赖于module.name,允许该模块访问目标模块中导出的公共类型。
  • requires a transitive module. name: 任何依赖于该模块的模块都会自动依赖于module.name。
  • exports pkg.name: 它表示我们的模块为每个需要该模块的模块导出了包pkg.name中的公共成员。
  • exports pkg.name to module.name: 与上述相同,但限制了可以使用包pkg.name中的公共成员的模块。
  • uses class. name: 它使当前模块成为服务class.name的消费者。
  • provides class.name with class.name.impl: 它注册了一个实现class.name服务的class.name.impl类作为服务。
  • opens pkg.name: 它允许其他模块使用反射来访问包pkg.name中的私有成员。
  • opens pkg.name to module.name: 它与上述相同,但限制了哪些模块可以使用反射访问pkg.name中的私有成员。

以上就是在Java 9中,模块描述符在模块中的重要性是什么?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论