Javadoc 如何处理 Java 9 中模块的可见性?
2022-09-01 19:26:38
Javadoc 工具基于辅助功能修饰符生成文档。默认情况下,它记录所有类,字段和方法。这可以通过以下选项进行更改:public
protected
-public
仅显示公共类和成员。-protected
仅显示受保护和公共类和成员。这是默认设置。-包
仅显示包、受保护和公共类及成员。-private
显示所有类和成员。
Java 9 引入了模块的概念,项目 Jigsaw 将其应用于现有的 JDK。Mark Reinhold(关于模块的系列讨论中的第三个)的演讲显示了修饰符现在如何具有不同级别的可访问性,具体取决于模块的可见性(通过):public
exports
- 向所有人公开
- 公共,但仅限于特定模块
- 仅在模块中公开
由于现在并非所有公共成员都可以访问,因此继续使用相同的Javadoc生成方案将不太有意义。只应记录以“足够”级别公开的成员。
Javadoc 模块是可感知的吗?除了上面的命令选项之外,是否有命令选项来处理额外的曝光层?对于仅向特定模块公开的公共成员,Javadoc 是否会列出这些模块,如
public <module1, module2> static void getDefaultThing()
?