加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 平台模块之间是否允许循环?

发布时间:2020-12-14 16:47:57 所属栏目:Java 来源:网络整理
导读:这是 java.rmi模块的模块声明: module java.rmi { requires java.base; requires java.logging; exports java.rmi.activation; exports com.sun.rmi.rmid to java.base; // -- cycle ...} 所以,java.rmi和java.base之间有一个循环的依赖关系,对吧?周期允许
这是 java.rmi模块的模块声明:
module java.rmi {
    requires java.base;
    requires java.logging;

    exports java.rmi.activation;
    exports com.sun.rmi.rmid to java.base; // <-- cycle
    ...
}

所以,java.rmi和java.base之间有一个循环的依赖关系,对吧?周期允许在platform modules之间?

解决方法

模块系统禁止使用require语句静态声明循环.这对于平台和应用程序模块是正确的,您给出的示例不违反该规则.

但是,Requires子句只是模块图形中可读性边缘的一个来源.其他都是命令行标志,反射,需要传递,我相信还有更多.添加所有这些可能会导致模块图中的循环,并且不会被禁止.

在具体示例中,只有在java.base读取java.rmi时才会创建循环,如果在com.sun.rmi.rmid中对类使用反射可能会发生这种情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读