requires
需要依赖的其他模块名称;本模块需要关联、依赖的其他模块,就把其他模块名称写在后面。 java.base 默认引用无需显式引用
opens
用来指定开放的包,其中public类型是可以直接访问的,其他类型可以通过反射得到.
java
module java.qolome {
// opens <package> 或者 opens <package> to <module1>...
opens com.xhx.house;
}
open
用来指定开放模块,开放模块的所有包都是公开的,public的可以直接引用使用,其他类型可以通过反射得到.
java
open java.house {
//里面不能再使用opens了,因为整个包都已经open了
}
uses
uses语句使用服务接口的名字,当前模块就会发现它,使用java.util.ServiceLoader类进行加载,必须是本模块中的,不能是其他模块中的.其实现类可以由其他模块提供.
exports
有些包你想要其他模块访问,有些包你不想要其他模块访问。 有哪些包,你想要被其他模块访问的,这些包的名字就写在exports后面。 就像import一样,但是不是导入,是导出。
provides…with…
语句指定一个或多个服务接口的实现类
演示案例
requires
需要依赖的其他模块名称;本模块需要关联、依赖的其他模块,就把其他模块名称写在后面。 java.base 默认引用无需显式引用
opens
用来指定开放的包,其中public类型是可以直接访问的,其他类型可以通过反射得到.
java
module java.qolome {
// opens <package> 或者 opens <package> to <module1>...
opens com.xhx.house;
}
open
用来指定开放模块,开放模块的所有包都是公开的,public的可以直接引用使用,其他类型可以通过反射得到.
java
open java.house {
//里面不能再使用opens了,因为整个包都已经open了
}
uses
uses语句使用服务接口的名字,当前模块就会发现它,使用java.util.ServiceLoader类进行加载,必须是本模块中的,不能是其他模块中的.其实现类可以由其他模块提供.
exports
有些包你想要其他模块访问,有些包你不想要其他模块访问。 有哪些包,你想要被其他模块访问的,这些包的名字就写在exports后面。 就像import一样,但是不是导入,是导出。
provides…with…
语句指定一个或多个服务接口的实现类
演示案例
java
module java.computer {
requires org.slf4j;
opens com.qolome.common;
uses com.qolome.computer.IComputer;
provides com.qolome.computer.IComputer with com.qolome.computer.impl.Dell;
exports com.qolome.demo;
}