gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:29:01 25 4
gpt4 key购买 nike

这是 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.rmijava.base 之间存在循环依赖,对吗? platform modules 之间是否允许循环?

最佳答案

模块系统禁止使用requires 子句静态声明循环。这对于平台和应用程序模块来说是正确的,您给出的示例没有违反该规则。

不过,Requires 子句只是模块图中可读性优势的一个来源。其他还有命令行标志、反射、需要传递,我相信还有更多。添加所有这些可能会导致模块图中出现循环,但这是不被禁止的。

在您的具体示例中,循环仅在 java.base 读取 java.rmi 时创建,如果它在 com 中的类上使用反射,则可能会发生这种情况。 sun.rmi.rmid.

关于java - 平台模块之间是否允许循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44104714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com