Module java.base
Package java.lang

Class ModuleLayer.Controller

java.lang.Object
java.lang.ModuleLayer.Controller
封装类:
ModuleLayer

public static final class ModuleLayer.Controller extends Object
控制模块层。由ModuleLayer定义的静态方法用于创建模块层,返回一个Controller,可用于控制层中的模块。

除非另有说明,在此类中向方法传递null参数会导致抛出NullPointerException

API 注意:
应谨慎处理Controller对象,不应与不受信任的代码共享。
自 JDK 版本:
9
  • Method Details

    • layer

      public ModuleLayer layer()
      返回此对象控制的层。
      返回:
      模块层
    • addReads

      public ModuleLayer.Controller addReads(Module source, Module target)
      更新层中的模块source,读取模块target。如果source已经读取target,则此方法不执行任何操作。
      实现注意:
      此方法添加的读取边弱引用,当source是强引用时,不会阻止target被 GC 回收。
      参数:
      source - 源模块
      target - 要读取的目标模块
      返回:
      此控制器
      抛出:
      IllegalArgumentException - 如果source不在模块层中
      参见:
    • addExports

      public ModuleLayer.Controller addExports(Module source, String pn, Module target)
      更新层中的模块source,将一个包导出到模块target。如果source已经将该包导出至至少target,则此方法不执行任何操作。
      参数:
      source - 源模块
      pn - 包名称
      target - 目标模块
      返回:
      此控制器
      抛出:
      IllegalArgumentException - 如果source不在模块层中或包不在源模块中
      参见:
    • addOpens

      public ModuleLayer.Controller addOpens(Module source, String pn, Module target)
      更新层中的模块source,将一个包开放给模块target。如果source已经将该包开放至至少target,则此方法不执行任何操作。
      参数:
      source - 源模块
      pn - 包名称
      target - 目标模块
      返回:
      此控制器
      抛出:
      IllegalArgumentException - 如果source不在模块层中或包不在源模块中
      参见:
    • enableNativeAccess

      public ModuleLayer.Controller enableNativeAccess(Module target)
      enableNativeAccess是 Java 平台的预览 API。
      仅当启用预览功能时,程序才能使用enableNativeAccess
      预览功能可能会在将来的版本中被移除,或升级为 Java 平台的永久功能。
      如果调用者的模块具有本地访问权限,则为层中的模块启用本地访问。

      此方法是受限制的。受限制的方法是不安全的,如果使用不正确,可能会导致 JVM 崩溃,甚至更糟的是,悄无声息地导致内存损坏。因此,客户端应避免依赖受限制的方法,并尽可能使用安全且受支持的功能。

      参数:
      target - 要更新的模块
      返回:
      此控制器
      抛出:
      IllegalArgumentException - 如果target不在模块层中
      IllegalCallerException - 如果调用者所在的模块未启用本地访问权限
      自 JDK 版本:
      20