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