4

鉴于:

  • 模块AB, whereB导入A.
  • 模块A出口external.class1。它定义但不导出external.class1.secretProvider, internal.SharedSecretsand internal.class2(更多内容见下文)。
  • 模块A使用SharedSecrets 机制在using中授予external.class1对私有方法的访问权限。internal.class2external.class1.secretProvider

我希望授予external.class3(在 Module 中定义B)对私有方法的访问权限,但internal.class2我无法这样做。internal.SharedSecretsexternal.class1.secretProviderA

有没有办法在不将它们导出给全世界看到的情况下B访问's 的秘密?A

4

1 回答 1

2

有没有办法让 B 访问 A 的秘密而不将它们导出给全世界看?

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

module A {
    exports external.class1.secretProvider to B;
    exports internal.SharedSecrets to B;
    // ... rest of your declarations
}
于 2018-12-06T14:32:27.497 回答