计算机系统应用教程网站

网站首页 > 技术文章 正文

Java 9揭秘-模块依赖(五) java9大作用域

btikc 2024-10-18 04:40:22 技术文章 23 ℃ 0 评论

可选依赖(Optional Dependency)

模块系统在编译时以及运行时验证模块间的依赖关系。 有时我们希望在编译时模块依赖性是必需的,但在运行时是可选的。

你在开发一个库时,可能需要一个特定的模块在运行时选择更好的模块,否则,它回落到比可选模块表现差的模块。但是,库是根据可选模块进行编译的,如果可选模块不可用,则确保不依赖于可选模块的代码执行。

另一个例子是导出注解包的模块。 Java运行时已经忽略不存在的注解类型。 如果程序中使用的注解在运行时不存在,则注解将被忽略。 模块依赖关系在启动时验证,如果模块丢失,应用程序将无法启动。 因此,必须将含有注解包模块的模块依赖性声明为可选

您可以通过在requires语句中使用static关键字声明可选依赖关系:

requires static <optional-package>;

以下模块声明包含对com.jdojo.annotation模块的可选依赖关系:

module com.jdojo.claim {
 requires static com.jdojo.annotation;
}

允许在require语句中同时使用transitive 和static 修饰符:

module com.jdojo.claim {
 requires transitive static com.jdojo.annotation;
}

如果transitive 和static 修饰符一起使用,则可以按任何顺序使用。 以下声明具有与之前相同的语义:

module com.jdojo.claim {
 requires static transitive com.jdojo.annotation;
}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表