给出:
A
和B
,其中B
导入A
。A
导出external.class1
。它定义但不导出external.class1.secretProvider
,internal.SharedSecrets
和internal.class2
(下面将详细介绍)。A
使用the SharedSecrets mechanism通过external.class1
授予internal.class2
对external.class1.secretProvider
中的私有方法的访问权限。我希望授予external.class3
(在模块B
中定义)对internal.class2
中的私有方法的访问权,但是看到internal.SharedSecrets
和external.class1.secretProvider
并没有被导出A
我无法这样做。
B
是否有一种方法可以访问A
的秘密而无需将其导出以供全世界查看?
答案 0 :(得分:1)
B是否有办法在不导出A的情况下访问A的秘密 让全世界看到?
如果我没有把问题弄错,则可以使用合格的导出来确保仅将这些软件包导出到特定的(列表)模块。您可以这样:
module A {
exports external.class1.secretProvider to B;
exports internal.SharedSecrets to B;
// ... rest of your declarations
}