是否可以跨 Java 个模块使用 SharedSecrets?

Is it possible to use SharedSecrets across Java modules?

给定:

我希望授予 external.class3(在模块 B 中定义)对 internal.class2 中私有方法的访问权限,但看到 internal.SharedSecretsexternal.class1.secretProvider 不是exported by A 我没有办法这样做。

有没有一种方法可以让 B 访问 A 的秘密,而无需将它们导出给全世界?

Is there a way for B to access to A's secrets without exporting them for the whole world to see?

如果我没有弄错问题,您可以使用 qualified exports 来确保将这些包导出到特定的(列表)模块。您可以这样做:

module A {
    exports external.class1.secretProvider to B;
    exports internal.SharedSecrets to B;
    // ... rest of your declarations
}