是否可以在Java模块之间使用SharedSecrets?

时间:2018-12-06 14:03:12

标签: java java-module module-info

给出:

  • 模块AB,其中B导入A
  • 模块A导出external.class1。它定义但不导出external.class1.secretProviderinternal.SharedSecretsinternal.class2(下面将详细介绍)。
  • 模块A使用the SharedSecrets mechanism通过external.class1授予internal.class2external.class1.secretProvider中的私有方法的访问权限。

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

B是否有一种方法可以访问A的秘密而无需将其导出以供全世界查看?

1 个答案:

答案 0 :(得分:1)

  

B是否有办法在不导出A的情况下访问A的秘密   让全世界看到?

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

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