给定:
- 模块
A
和B
,其中B
导入A
。 - 模块
A
导出external.class1
。它定义但不导出external.class1.secretProvider
、internal.SharedSecrets
和internal.class2
(更多内容见下文)。 - 模块
A
使用 the SharedSecrets mechanism使用external.class1.secretProvider
授予external.class1
访问internal.class2
中私有(private)方法的权限。
我希望授予 external.class3
(在模块 B
中定义)访问 internal.class2
中的私有(private)方法,但看到 internal.SharedSecrets
和 external.class1.secretProvider
不是由 A
导出的,我没有办法这样做。
有没有办法让 B
访问 A
的 secret ,而无需将它们导出给全世界?
最佳答案
Is there a way for B to access to A's secrets without exporting them for the whole world to see?
如果我没有弄错问题,您可以使用限定导出 来确保您仅将这些包导出到特定(列表)模块。你可以这样做:
module A {
exports external.class1.secretProvider to B;
exports internal.SharedSecrets to B;
// ... rest of your declarations
}
关于java - 是否可以跨 Java 模块使用 SharedSecrets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53653132/