模块系统禁止使用
requires子句静态声明循环。对于平台和应用程序模块,这是正确的,并且您给出的示例不违反该规则。
不过,Requires子句只是模块图中可读性优势的一种来源。其他是命令行标志,反射,,
requirestransitive我敢肯定还有更多。添加所有这些可能会导致模块图中的循环,并且这是不被禁止的。
在您的具体示例中,仅当 java.base 读取 java.rmi 时才创建该循环,如果对 java.rmi中的
类使用反射会发生这种情况
com.sun.rmi.rmid。

模块系统禁止使用
requires子句静态声明循环。对于平台和应用程序模块,这是正确的,并且您给出的示例不违反该规则。
不过,Requires子句只是模块图中可读性优势的一种来源。其他是命令行标志,反射,,
requirestransitive我敢肯定还有更多。添加所有这些可能会导致模块图中的循环,并且这是不被禁止的。
在您的具体示例中,仅当 java.base 读取 java.rmi 时才创建该循环,如果对 java.rmi中的
类使用反射会发生这种情况
com.sun.rmi.rmid。