Java中模块的使用(4)
发表于2019-07-04,长度623,
72个单词,
1分钟读完
在Java9以前,我们常有这种“痛楚”:写出来的类只想给应用内其他某个包中的类引用,但是由于声明为public的,导致任何一个类都可以引用。 java的模块系统可以帮我们避免这种情况。这里简单介绍一下如何更加严格的控制访问。
创建项目
和往常一样,你可以用任何工具,包括notepad或终端里的vim,创建一个Java项目。 我已经创建好了三个模块,你可以下载源码:j11-jigsaw-exports-to。

上面是这个项目的结构,可以看到三个模块分布得就像他们的名字一样简单清晰。
第一个模块的描述符是这样的:
module firstModule {
exports com.j11.first;// to secondModule;
}
后面两个模块都依赖了这个模块,并且都有自己的main方法,可以直接运行。
访问控制
接下来编辑第一个模块的描述文件,将其修改成
module firstModule {
exports com.j11.first to secondModule;
}
再次编译运行两个main方法,可以看到第三个模块不能编译:

而第二个模块运行正常。
结论
在导出模块exports的时候,可以使用to关键字指明导出的模块只能供哪个模块使用。当然可以指定多个模块:
module firstModule {
exports com.j11.first to secondModule, thirdModule;
}
Written on July 4, 2019
分类:
dev,
标签:
java
jigsaw
如果你喜欢,请赞赏!
