ResolvedModule,Module和Observable Module之间有什么区别

问题描述 投票:4回答:2

以下各项状态的文档如下:

ResolvedModule

已解析模块图中的模块。 ResolvedModule定义了获取已解析模块所在配置的配置方法。它定义了引用方法以获取对模块内容的引用。

Module

表示运行时模块,可以是命名模块,也可以是未命名模块。

问: - 这两者有什么不同,是在编译和运行时还是只是模块的不同表示?

另一方面,the module-path定义

内置于编译时或运行时环境的模块以及模块路径上的工件定义的模块统称为可观察模块的范围。

问: - 所有这些都相关吗?有人可以举例说明如何以及在什么时间解释这个概念?

java java-9 jigsaw java-module
2个回答
3
投票

从指定分辨率的java.lang.module包描述开始,您将了解可读性和可读性图。

然后查看Configuration类作为Configuration对象封装可读性图。图中的每个顶点由ResolvedModule表示。

获得配置后,您可以考虑将其实例化为Java虚拟机中的模块图。这将导致您使用java.lang.ModuleLayer API。

我认为问题的一部分是询问模型世界ResolvedModule和运行时Module之间是否存在1-1关系。通常是,但没有什么可以阻止您多次实例化配置,这将导致从相同配置创建多个模块层。

现在考虑可能太多了,最好在去那里之前消化设计和API。


2
投票

如果您正在寻找描述这些特定类的使用的答案,那么我的理解就超出了我的深度,但这些术语的意义略低于技术背景:

  • 模块:通俗地用于描述任何模块化工件(模块化JAR或JMOD)
  • 可观察模块:运行时映像中的模块或模块路径上的模块
  • 已解决的模块:在模块解析期间添加到模块图中的可观察模块
© www.soinside.com 2019 - 2024. All rights reserved.