gpt4 book ai didi

Java 模块词汇表

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:07:00 24 4
gpt4 key购买 nike

Java 模块规范中使用的所有这些术语之间有什么区别?我找不到不循环引用自身的这些术语的定义。

  • 可见
  • 可观察
  • 无障碍

规范做出了这样的陈述,但我还没有弄清楚这些词的实际意思:

Specifically, the host system must limit the ordinary compilation units that would otherwise be observable, to only those that are visible to M

(JLS 11 第 7.3 节第 183 页)

最佳答案

首先,在 JLS 中,像可见性这样的术语在应用于编译单元、包或类型时可能具有不同的含义。

一些在 JLS 中定义术语的引用:

  • 可观察:

    • 编译单位:§7.3 , 以“主机系统决定哪些编译单元是可观察的”开头的句子

    • 包裹:§7.4.3 , 第一段。

    • 直觉:参与编译的元素。

  • 可见:

    • 编译单位:§7.3 , 句子开头 “The ordinary compilation units that is visible to M” - 注意可见性是相对于模块定义的

    • 包裹:§7.4.3 , 句子开头 “A package is visible to a module M” - 再次相对于模块。

    • 直觉:从给定模块的角度考虑requiresexports 可观察到的元素。

  • 无障碍:

此外,自 JLS 9 以来的核心新概念是“唯一可见”(§7.4.3),加上术语“潜在可访问”、“阅读”/“阅读者”、“与...相关” ”。从历史上看,JLS 9 进一步区分了“技术上可观察”和“真正可观察”,从 JLS 11 开始,这一区分已被删除。

此外,从历史上看(直到 JLS 8),“可见”曾用于阴影的定义 ( §6.4.1 ),但这种用法已在 JLS 9 中撤回。

最后请注意,其中一些概念(显式或隐式)从 java.lang.module 中的 API 引入了定义。

我建议将这些术语视为技术术语,而不是为了迎合更广泛受众的直觉,部分原因是 JLS 中的许多定义都与“编译单元”有关,这对于直观理解而言并不是必需的。有关可能的直观理解与基于 JLS 的理解的比较,请参阅 JDT embraces Java™ 9 - An insiders' view 的幻灯片 #20。 .

关于Java 模块词汇表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53582641/

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