Java 9 中的匿名模块是什么?


匿名模块** 是**匿名包** 的概念。它是一个模块,其中包或类不能在任何**已命名模块** 中定义,但存在类路径的**jar 文件** 中。如果我们的代码尝试从那些文件中加载类型,模块系统会尝试查找**类路径** 并加载它。

**匿名模块** 读取所有其他模块,包括所有**已命名**、**内置平台模块**,并且还导出其所有**包**。匿名模块中的包可以被忽略,它在已命名模块中也有定义。

匿名模块可以访问

  • **模块路径** 中所有其他模块导出的所有包。
  • 类路径中的所有 jar(即此匿名模块中存在的所有其他类型)。

语法

java --module-path out -module moduleName/com.tutorialspoint.UnnamedModuleTest

示例

public class UnnamedModuleTest {
   public static void main(String args[]) {
      Module module = UnnamedModuleTest.class.getModule();
      System.out.println("Module: "+ module);
      System.out.println("Name: " + module.getName());
      System.out.println("isNamed: " + module.isNamed());
      System.out.println("Descriptor: " + module.getDescriptor());
   }
}

输出

Module: unnamed module @c818063
Name: null
isNamed: false
Descriptor: null

更新于: 08-Apr-2020

810 次浏览

开启你的职业生涯

完成课程后获得认证

开始
广告