ResolvedModule、Module 和 Observable Module 有什么区别

Nam*_*man 5 java java-platform-module-system java-9 java-module

这些状态中的每一个的文档如下:

ResolvedModule

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

Module

表示一个运行时模块,命名或未命名

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

另一方面,模块路径定义

编译时或运行时环境中内置的模块,连同那些由模块路径上的工件定义的模块,统称为可观察模块的宇宙。

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

Ala*_*man 3

java.lang.module,您将了解可读性和可读性图表。

然后将该Configuration类视为封装了可读性图的配置对象。图中的每个顶点都由一个表示ResolvedModule

一旦有了配置,您就可以将其实例化为 Java 虚拟机中的模块图。这将引导您访问java.lang.ModuleLayerAPI。

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

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