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
广告