如何解决模块声明中的require和require静态有什么区别
一条requires
子句表示在编译和运行时需要所需的模块。因此,当模块系统在模块解析(处理模块描述符和解决依赖关系的阶段)期间遇到此类子句时,它将搜索可观察模块(JDK和模块路径中的模块)的范围,并引发错误如果找不到模块。
一个requires static
从句表示的依赖是在运行时可选。这意味着在编译时,模块系统的行为完全如上所述。
另一方面,在运行时,它主要忽略requires static
子句。如果遇到一个,它将
。这意味着,如果仅使用引用可观察模块requires
static
,则不会将其纳入模块图中!起初这可能有点令人惊讶。另一方面,如果模块以其他方式将其放入图形中(由其他模块要求,通过服务绑定手动添加--add-
modules
,通过服务绑定来添加),则对它具有可选依赖关系的所有模块都可以读取该图。
解决方法
模块声明中的 require 和 require静态 模块语句之间有什么区别?
例如:
module bar {
requires java.compiler;
requires static java.base;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。