Javadoc如何处理Java 9中模块的可见性?

use*_*551 23 java javadoc java-platform-module-system java-9 java-module

Javadoc工具基于可访问性修饰符生成文档.默认情况下,它记录所有publicprotected类,字段和方法.可以使用以下选项更改此设置:

-public
仅显示公共类和成员.

-protected
仅显示受保护的公共类和成员.这是默认值.

-package
仅显示包,受保护和公共类和成员.

-private
显示所有类和成员.

Java 9引入了模块的概念,项目Jigsaw将其应用于现有的JDK.一马克莱因霍尔德(在一系列有关模块会谈3日)显示了如何public修改目前已拥有不同级别的可访问的,这取决于模块(通过可见性exports):

  • 公开给大家
  • 公开但仅限于特定模块
  • 仅在模块内公开

由于现在并非所有公共成员都可以访问,因此继续使用相同的Javadoc生成方案将没有多大意义.只有那些暴露在"足够"水平的成员才应该被记录下来.

Javadoc模块是否可识别?除了上面的命令选项还有处理额外曝光层的命令选项吗?对于仅暴露给特定模块的公共成员,Javadoc是否列出了这些,如

public <module1, module2> static void getDefaultThing()
Run Code Online (Sandbox Code Playgroud)

Jon*_*ons 15

javadoc具有新选项,允许您选择在模块,包,类型和成员级别记录哪些项目.使用EA版本的JDK 9,查找新的--module,--show-*选项和--expand-requires选项.

现有的选项-public,-protected,-package,-private选项已被重新定义的新条款--show-*的选择,虽然他们的命令行帮助,仍然需要更新.

方便花哨的转换表是:

-public
      --show-module-contents api --show-packages exported --show-types public --show-members public

-protected   (the long-standing default)
      --show-module-contents api --show-packages exported --show-types protected --show-members protected

-package
      --show-module-contents all --show-packages all --show-types package --show-members package

-private
      --show-module-contents all --show-packages all --show-types private --show-members private 
Run Code Online (Sandbox Code Playgroud)

通常,继续使用默认值为API用户生成文档,并且可以使用-package-private为API的开发人员生成文档.要获得更精细的控制,请使用基础--show-*选项.