java.lang.Object
java.lang.ModuleLayer.Controller
- 封闭类:
ModuleLayer
控制模块层。
ModuleLayer 定义的用于创建模块层的静态方法返回一个 Controller,可用于控制层中的模块。
除非另有说明,否则将 null 参数传递给此类中的方法会导致抛出 NullPointerException 。
- API 注意:
-
应小心处理
Controller对象,它们不应与不受信任的代码共享。 - 自从:
- 9
-
方法总结
修饰符和类型方法描述addExports(Module source, String pn, Module target) 更新层中的模块source以将包导出到模块target。更新层中的模块source以打开模块target的包。更新层中的模块source以读取模块target。enableNativeAccess(Module target) 预览。如果调用者的模块具有本机访问权限,则为层中的模块启用本机访问。layer()返回此对象控制的图层。
-
方法详情
-
layer
返回此对象控制的图层。- 返回:
- 模块层
-
addReads
更新层中的模块source以读取模块target。如果source已经读取target,则此方法是空操作。- 实现注意事项:
-
通过此方法添加的 Read edges 是 weak,并且在
source强可达时不阻止target被 GC。 - 参数:
source- 源模块target- 要读取的目标模块- 返回:
- 这个控制器
- 抛出:
IllegalArgumentException- 如果source不在模块层- 参见:
-
addExports
更新层中的模块source以将包导出到模块target。如果source已经将包导出到至少target,则此方法是空操作。- 参数:
source- 源模块pn- 包名target- 目标模块- 返回:
- 这个控制器
- 抛出:
IllegalArgumentException- 如果source不在模块层或包不在源模块中- 参见:
-
addOpens
更新层中的模块source以打开模块target的包。如果source至少已将包打开到target,则此方法是空操作。- 参数:
source- 源模块pn- 包名target- 目标模块- 返回:
- 这个控制器
- 抛出:
IllegalArgumentException- 如果source不在模块层或包不在源模块中- 参见:
-
enableNativeAccess
enableNativeAccess是 Java 平台的预览 API。预览功能可能会在未来的版本中删除,或升级为 Java 平台的永久功能。如果调用者的模块具有本机访问权限,则为层中的模块启用本机访问。这个方法是restricted 。受限方法是不安全的,如果使用不当,它们的使用可能会使 JVM 崩溃,或者更糟的是,无声地导致内存损坏。因此,客户应避免依赖受限的方法,并尽可能使用安全和受支持的功能。
- 参数:
target- 要更新的模块- 返回:
- 这个控制器
- 抛出:
IllegalArgumentException- 如果target不在模块层IllegalCallerException- 如果调用者所在的模块未启用本机访问- 自从:
- 20
-
enableNativeAccess。