5

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

ResolvedModule

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

Module

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

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

另一方面,模块路径定义

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

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

4

2 回答 2

3

如果您正在寻找描述这些特定类的使用的答案,我已经超出了我的深度,但这是这些术语在技术背景稍差的情况下的含义:

  • Module:通俗地用于描述任何模块化工件(模块化 JAR 或 JMOD)
  • Observable Module : 运行时映像中的模块或模块路径上的模块
  • Resolved Module : 在模块解析期间添加到模块图中的可观察模块
于 2017-09-20T21:57:34.930 回答
3

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

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

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

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

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

于 2017-09-21T11:12:37.723 回答