gpt4 book ai didi

java - Java 9 中的 "Module local"访问行为

转载 作者:搜寻专家 更新时间:2023-10-30 21:05:11 25 4
gpt4 key购买 nike

作为 Jigsaw 项目的核心是 Java 模块系统,如果能够限制对特定模块中特定程序元素(类、方法和字段)的访问,那将是很好的。

当模块中有一些元素对于这个模块来说基本上是公共(public)的,但是在这个模块之外不应该被访问时,它会很有帮助。

所以我说的是“package-local”之后的下一个访问级别,可以命名为“module-local”。

但是简要看一下 Jigsaw rules早期的规范并没有帮助我找到这种功能。更具体地说 this Modifier specification不包含任何新元素。

那么在未来的 Java 9 中有没有其他的可能性呢?

最佳答案

public 元素(,类、接口(interface)、方法或字段)在未导出的包实际上是“本地模块”。这将是模块中的所有其他代码都可以访问,但不能从模块外部访问模块。

无法在导出包中声明模块本地元素。导出包的 public 元素可以从外部访问模块,一个包私有(private)的元素仍然是包私有(private)的,并且有这两种模式之间没有元素级访问模式。我们可以定义一个新的这种模式,但我们已经看到很少有令人信服的用例,而且,此外,在 JVM 中以粒度实现模块化访问控制比导出包装更精细会带来显着的性能成本。

关于java - Java 9 中的 "Module local"访问行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38897806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com