问题
Given:
- Modules
AandB, whereBimportsA. - Module
Aexportsexternal.class1. It defines but does not exportexternal.class1.secretProvider,internal.SharedSecretsandinternal.class2(more on these below). - Module
Auses the SharedSecrets mechanism to grantexternal.class1access to private methods ininternal.class2usingexternal.class1.secretProvider.
I wish to grant external.class3 (defined in Module B) access to private methods in internal.class2 but seeing as internal.SharedSecrets and external.class1.secretProvider are not exported by A I have no way of doing so.
Is there a way for B to access to A's secrets without exporting them for the whole world to see?
回答1:
Is there a way for B to access to A's secrets without exporting them for the whole world to see?
If I am not getting the question wrong, you can use qualified exports to make sure you export those packages just to a specific (list of) module. You can do so as :
module A {
exports external.class1.secretProvider to B;
exports internal.SharedSecrets to B;
// ... rest of your declarations
}
来源:https://stackoverflow.com/questions/53653132/is-it-possible-to-use-sharedsecrets-across-java-modules