项目---模块---包---类
模块间的调用
两个模块(模块一 test01、模块二test02):
test01、test02都在src下创建配置文件:module-info.java
- 普通调用
test01配置文件 配置导出:exports
module test01 {
exports com.base;
}
test02配置文件 配置依赖:requires
module test02 {
requires test01;
}
报错:按alt+entry添加模块依赖即可(Mac)(就是补全信息的快捷键)
- 接口实现类的使用
test01添加服务配置
import com.base.InterShow;
import com.base.Show;
module test01 {
exports com.base;
provides InterShow with Show; //InterShow接口,Show接口的实现类
}
test02配置可使用接口
import com.base.InterShow;
module test02 {
requires test01;
uses InterShow; //可以使用这个接口,但是不知道具体实现
}
test02 使用这个接口
ServiceLoader<InterShow> sl=ServiceLoader.load(InterShow.class);
for(InterShow interShow:sl){
interShow.show(); //show是InterShow接口的方法
//show的具体实现在 test01中的Show类中
}