java - 是否可以跨 Java 模块使用 SharedSecrets?

标签 java java-module module-info

给定:

  • 模块 AB,其中 B 导入 A
  • 模块 A 导出 external.class1。它定义但不导出 external.class1.secretProviderinternal.SharedSecretsinternal.class2(更多内容见下文)。
  • 模块 A 使用 the SharedSecrets mechanism使用 external.class1.secretProvider 授予 external.class1 访问 internal.class2 中私有(private)方法的权限。

我希望授予 external.class3(在模块 B 中定义)访问 internal.class2 中的私有(private)方法,但看到 internal.SharedSecretsexternal.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/

相关文章:

java - java中类的不可变性

java - 无法使用 Maven 编译简单的 Java 10/Java 11 项目

java - 发生此错误时 Error :(1, 1) java.desktop 和 java.datatransfer 中的 java : module JavaFX reads package java. awt

java - 在 Linux 中加载 OpenCV 库?

java - 有谁能告诉我为什么在我尝试在 map 中添加 float 时出现以下错误,即使我的 float 是从 Number 继承的

java - 即使 EditText 不可编辑,EditText 光标也可见

java - 如何提取文件 jre-9/lib/modules?

java - 使用 Jaxb 和 JDK 9 的小程序中的非法反射访问

java - --add-opens 是否适用于 JPMS 中动态创建的层?

java - 在教育环境中使用 Java 模块系统的最佳方式是什么?