Javadoc注释编写入门

article/2025/10/27 3:24:35

Javadoc简介

Javadoc是Sun Microsystems为Java语言创建的文档生成器,在Javadoc推出之前,程序开发者往往需要为每一个程序单独创建并更新一个文档,这种做法耗时耗力且极不方便,Javadoc的主要优点就是在于能够根据源代码的注释(为加以区分,此后称此文档为Javadoc注释)生成相应的html格式API文档(此后称此文档为Javadoc文档),这将帮助软件开发者或者使用者理解原代码。

本文旨在借助详实的案例,帮助对Javadoc注释编写没有经验的开发者快速了解并掌握规范的Javadoc注释编写方法。

Javadoc注释基本结构

Javadoc注释是一类特殊的注释,也是Javadoc文档生成的依据。在源代码中,Javadoc注释以/**开头,*/结尾的注释格式添加在需要注释的实体的声明前(可以是包、类、方法、对象等)。一个常见的错误是,对于某个类的Javadoc注释被填写在import语句之前,这将导致该注释无法被识别。对于某个模块或者某个包,其Javadoc注释一般在该模块/包目录下的module-info.java/package-info.java中。对于一个Javadoc注释块,其通常被分为主要说明(和文内标签)和标签块两个部分。

主要说明

主要说明(Main Description)其实与我们常见的普通注释是类似的,并没有什么格式要求,但是需要简要而准确地描述所注释实体(功能、特性等等)。

看下面一个例子(来自java.base模块的java.io包,以下案例若无特别说明,均出自JDK17源码):

/*** The length of this abstract pathname's prefix, or zero if it has no* prefix.*/
private final transient int prefixLength;
​
/*** Returns the length of this abstract pathname's prefix.* For use by FileSystem classes.*/
int getPrefixLength() {return prefixLength;
}

需要注意两点:

  1. 在这个例子中,final变量prefixLengthgetPrefixLength方法的权限修饰符分别为private和默认(default),这意味着在生成Javadoc文档时若把可见性级别设得太低(比如说public),那么在生成的Javadoc文档中是看不见这些权限高于public的对象或方法的。

  2. 这个例子中两个Javadoc注释都进行了换行,事实上这种换行并不会反映到生成的Javadoc文档当中,因此在编写Javadoc注释时不需要太在意换行,根据自己的习惯即可(当然,请在单词之间而不是单词中间换行)。除Javadoc注释块的首尾部分外,中间的前导*也是可以省略的。

排版

如果有一个注释十分复杂,需要换行或是进行一定的排版,都可以在Javadoc注释中添加html标签来实现。看下面一个例子(有删减):

/*** Creates a new {@code File} instance from a parent pathname string* and a child pathname string.** <p> If...** <p> Otherwise...** @param   parent  The parent pathname string* @param   child   The child pathname string* @throws  NullPointerException*          If {@code child} is {@code null}*/
public File(String parent, String child) {...
}

这是File类的一个构造器,可以看到其中使用了html标签<p>来标注换行。在Javadoc注释编写的过程中使用html标签都可以被识别并反映到生成的Javadoc文档中。

首句

在生成Javadoc文档中的Summary部分里,相应Description只会包含第一句的内容,也被称为首句(First Sentence),因此请务必保证该句内容可以完整而准确地描述这个被声明的实体,同时尽量保证该句在80个字符以内。

Summary中只包含首句内容

需要注意的是,Javadoc对于首句的判定就是根据符号.以及之后的空格、制表位符或是换行符等,因此请在首个句点前完成描述(或者在句点后立刻添加其它符号,比如Prof. Zhang不会将Zhang纳入首句,而Prof.Zhang就可以)。

后续内容以及标签块将显示在Javadoc文档的Details部分中。

Javadoc标签

从上面File类构造器的例子中我们还可以看到,除了html标签外,还有一些其它标签,比如{@code File}@param等等,这些标签就是Javadoc注释的标签(此后称为Javadoc标签),分为两类:文内标签(inline tag)和块标签(block tag)。接下来笔者将详细介绍常见的各个Javadoc标签的用法和效果:

文内标签

用花括号括起,穿插出现在主要说明或标签块之中的标签叫做文内标签,比如{@code File}就是文内标签。文内标签的作用通常是为主要说明中的部分内容添加样式或者效果。

{@code text} 代码样式

用代码样式显示相应的文本。与使用<code> </code>的html标签效果一致。

{@docRoot} 文档根

代表生成Javadoc文档的根目录。

/** * See the <a href="{@docRoot}/copyright.html">Copyright</a>. */

{@inheritDoc} 继承文档

从最近的继承类或者接口处继承文档,相当于进行了拷贝操作。{@inheritDoc}标签可以使用在主要说明块中,也可以使用在标签块中。使用该标签后可以进一步地添加说明。

/*** {@inheritDoc}** <p> Fewer than {@code len} characters will be read if* {@code len} exceeds the pipe's buffer size.** @param      cbuf  {@inheritDoc}* @param      off   {@inheritDoc}* @param      len   {@inheritDoc}** @return     {@inheritDoc}*/

{@literal text} 文本样式

以文本样式显示原文本,其中的文本将不会被识别为html标记符号或者嵌套的Javadoc标签。

/*** <b>haha</b> {@literal <b>haha</b>}*/
在生成的Javadoc文档中,前者的html标签会被识别,后者不会

 {@link package.class#member label} 链接

插入一个文内链接,指向另一个实体的文档。@link标签后按照package.class#member的格式填写链接到的实体,如在同一类中,前面的package.class可省略,然后填写在Javadoc文档中实际显示的内容。

/** * ... then the {@link java.nio.file.Files#readAttributes(Path,Class,LinkOption[])* Files.readAttributes} method may be used.*/

{@value package.class#field} 值

代表某个常量的值。若不加参数,则显示为所注释的实体常量的值。

/** * Evaluates the script starting with {@value #SCRIPT_START}. */

块标签

块标签通常在主要说明之后的标签块内,另起一行并直接使用该标签作为开头。@param ...就是一个块标签。在生成的Javadoc文档中,块标签的内容也以特别的样式被显示出来。需要注意的是,标签块只能写在主要说明后,并按照以下顺序(只是建议,实践中至少保证块标签是在主要说明后的标签块中即可):

@author 作者

该标签仅限添加在类和接口的Javadoc注释中。

@author标签后填写代码作者,有多个作者的情况可以以逗号隔开或者分多行填写(注意每行前都要添加@author)。这个标签通常而言并不重要,除非特别指明,作者一般不会显示在生成的Javadoc文档中。

/*** @author      Mark Reinhold*/

@version 版本

该标签仅限添加在类和接口的Javadoc注释中。

@version标签后填写代码版本。

/*** @version 1.13, 06/08/06*/

@param 形参

该标签仅限添加在方法和构造函数的Javadoc注释中。

@param标签后填写参数的名字(而非类型),然后再填写参数的详细描述。对于含有多个参量的方法,按照参量声明顺序添加标签。

/*** @param   parent  The parent pathname string*/

@return 返回值

该标签仅限添加在方法的Javadoc注释中。

@return标签后填写返回的内容,按规范除void方法和构造方法外都需要填写@return标签,就算可能有些多余。在实践中,若方法在特定情况下返回某个特定值,在@return标签中填写清楚。

/** ...* @return  Zero if the argument is equal to this abstract pathname, a*          value less than zero if this abstract pathname is*          lexicographically less than the argument, or a value greater*          than zero if this abstract pathname is lexicographically*          greater than the argument*/

@throws 抛出

@throws标签后填写抛出的异常(或者其它抛出类),然后填写在什么情况下会抛出该异常。若存在多个抛出的异常,按照异常名称顺序添加标签。

/*** @throws  IllegalArgumentException*          If the {@code prefix} argument contains fewer than three*          characters** @throws  IOException  If a file could not be created** @throws  SecurityException*          If a security manager exists and its {@link*          java.lang.SecurityManager#checkWrite(java.lang.String)}*          method does not allow a file to be created*/

@see 请参阅

@see标签后填写另请参阅(See Also)的内容。若存在多个需要另请参阅的内容,按照搜索顺序,也即由近及远的方式添加标签。@see标签的搜索顺序如下:

  1. 当前类或借口

  2. 包含的类或借口,优先最近的

  3. 父类或父接口,优先最近的

  4. 当前包

  5. 导入的包、类、借口

/*** @see java.nio.file.Files#createTempDirectory(String,FileAttribute[])*/

@since 自

@since标签后填写该实体添加时的产品版本。

/** * @since 1.2*/

@deprecated 已弃用

@deprecated标签后填写该实体弃用的时间,还可以介绍弃用的原因以及替代。

/*** @deprecated  As of JDK 1.1, replaced by*              {@link #setBounds(int,int,int,int)}*/

Javadoc注释编写风格

Javadoc注释本质上仍是注释,因此在编写风格上并不存在强制的要求。但是为增强Javadoc文档可读性,Oracle提供了如下的风格指南:

善用代码样式

针对如下关键词或名字,请使用代码样式:

  • Java关键字

  • 包名

  • 类名

  • 方法名

  • 接口名

  • 字段名

  • 参数名

  • 代码样例

为文本添加代码样式可以用上述提到的{@code text}标签,也可以用html标签<code>

节约使用文内链接

Oracle推荐只在以下两种情况使用文内链接:

  • (你认为)用户可能会想点进去获得更多信息,或者

  • 仅针对每个API名在文档注释中首次出现的情况(毋需重复链接)。

为方法或构造器的一般形式省去括号

对于某个拥有多种形式的方法或构造器,若要指定其中一种特定形式,则要加上括号和参数,比如add(int, Object)

若并不指定特定形式,则一律省去括号,以避免歧义。

The add method enables you to insert items. (preferred)

The add() method enables you to insert items. (avoid when you mean "all forms" of the add method)

为简洁,可使用短语而不是完整句

尤其是在初步总结和@param标签的描述中。

用第三人称而不是第二人称

以第三人称陈述,而不是第二人称祈使:

Gets the label. (preferred)

Get the label. (avoid)

方法描述以动词开头

一个方法代表着一个动作,所以通常以动词开头:

Gets the label of this button. (preferred)

This method gets the label of this button. (avoid)

类/接口/字段的描述可以省略主体,只描述客体

A button label. (preferred)

This field is a button label. (avoid)

对当前类产生的对象,用this不用the

比如,getToolkit方法的描述如下:

Gets the toolkit for this component. (preferred)

Gets the toolkit for the component. (avoid)

描述应超出API名的范围

最好的API名是自文档化的(self-documenting),而最好的描述不应只是复述API名,而应该提供更多信息。

坏的例子:

/**
* Sets the tool tip text.
*
* @param text  the text of the tool tip
*/
public void setToolTipText(String text) {

好的例子:

/**
* Registers the text to display in a tool tip.   The text 
* displays when the cursor lingers over the component.
*
* @param text  the string to display.  If the text is null, 
*              the tool tip is turned off for this component.
*/
public void setToolTipText(String text) {

避免使用拉丁文

避免使用"aka", "i.e.", "e.g.", "viz."等拉丁文或缩写。

Javadoc文档的生成

Javadoc文档的生成一般有两种方式:一种是传统的,通过命令行来生成Javadoc文档,当然也可以使用shell脚本或者批处理文件生成,还可以通过Javadoc的编程接口在Java应用程序中执行Javadoc,这些方法是类似的,缺点是比较繁琐;另一种方法就是利用IDE提供的Javadoc文档生成工具,这种方式更加简单易懂。

通过命令行生成

Javadoc文档可以通过命令行javadoc命令加上特定的参数选项生成,比如:

javadoc -d C:\home\html -sourcepath C:\home\src java.awt java.awt.event

完整的参数选项请和更多例子自行参阅官方文档。

通过IDE提供的工具生成

事实上,现在市面上的许多Java IDE都有提供生成Javadoc文档的工具,比如Intellij IDEA。

在Intellij IDEA中,选择顶部菜单栏的 工具(T) -> 生成 JavaDoc(D)... 即可打开Javadoc文档生成窗口,如下图所示:

Intellij IDEA的生成JavaDoc窗口

根据自己的需要调整以上设置,即可生成所需要的Javadoc文档,一般而言这个工具就能够满足绝大多数情况下生成Javadoc文档的需求。

参考文献/另请参阅

  • javadoc (oracle.com)

  • How to Write Doc Comments for the Javadoc Tool (oracle.com)

  • Javadoc FAQ (oracle.com)

  • Requirements for Writing Java API Specifications (oracle.com)

  • openjdk/jdk: JDK main-line development (github.com)


http://chatgpt.dhexx.cn/article/gUlbsSHf.shtml

相关文章

使用idea 生成Javadoc文档

使用idea 生成Javadoc文档 方法一&#xff1a;命令行窗口生成javaDoc 右键想要生成doc文档的类&#xff0c;点击Show in EXplorer 打开文件所在位置 ​ 在打开路径页面上选中路径&#xff0c;输入cmd回车 输入指令&#xff1a;–javadoc 参数 java文件 打开第一步的类的位…

javadoc命令使用

javadoc指令基本使用 Java 文档注释是用来生成 API 文档的。Java 文档注释以/**开始&#xff0c;并以*/结束&#xff0c;可以通过 Javadoc 生成 API 帮助文档&#xff0c;Java 帮助文档主要用来说明类、接口、方法、成员变量、构造器和内部类。 Javadoc &#xff08;Java API…

javadoc 使用

对于Java注释我们主要了解两种&#xff1a;  // 注释一行  /* ...... */ 注释若干行  但还有第三种&#xff0c;文档注释&#xff1a;  /** ...... */ 注释若干行&#xff0c;并写入 javadoc 文档  通常这种注释的多行写法如下&#xff1a;  /**  * .........  …

生成JavaDoc文档的两个方法

生成JavaDoc文档 JavaDoc是一种技术&#xff0c;它可以将我们的注释生成帮助文档 方法一&#xff1a;通过命令行 javadoc 来生成javaDoc文档 1.打开文件的地址&#xff1a; 2.打开目标文件夹&#xff0c;路径前加入cmd &#xff08;记得加空格&#xff09;然后回车键&#…

JavaDoc文档生成

JavaDoc文档生成 JavaDoc是一种将注释生成HTML文档的技术。 1、使用javadoc命令生成文档 首先了解javadoc指令 使用指令生成文档&#xff0c;这里的java文件的编码是utf-8&#xff0c;所以要带上编码选项 -encoding utf-8 指令 javadoc -encoding utf-8 Fish.java 打开ind…

如何使用Intellij Idea生成JavaDoc文档

JavaDoc是一种将注释生成HTML文档的技术&#xff0c;生成的HTML文档类似于Java的API&#xff0c;易读且清晰明了。在简略介绍JavaDoc写法之后&#xff0c;再看一下在Intellij Idea 中如何将代码中的注释生成HTML文档。 先看一段样例代码: //: POI/ExportConfig /** Excel导出项…

IDEA插件系列(29):Easy Javadoc插件——快速生成javadoc文档注释

1.插件介绍 Easy Javadoc插件。 能帮助java开发者自动生成javadoc文档注释。如下&#xff1a; 2.安装方式 第一种安装方式是在线下载安装插件。 第二种安装方式是使用离线插件进行安装。 插件下载地址&#xff1a;https://plugins.jetbrains.com/plugin/12977-easy-javadoc…

IDEA插件系列(3):Easy Javadoc插件——快速生成javadoc文档注释

1.插件介绍 Easy Javadoc插件。 能帮助开发者快速生成类、方法、属性等中文javadoc 2.安装方式 第一种安装方式是在线下载安装插件。 第二种安装方式是使用离线插件进行安装。 插件下载地址&#xff1a;https://plugins.jetbrains.com/plugin/12977-easy-javadoc 3.使…

javadoc简介及用法

注释文档 文档和代码分离&#xff0c;在每次修改代码的时候&#xff0c;就需要修改相应的文档&#xff0c;解决的方法是将代码同文档“链接”起来&#xff0c;简单的方法是将所有东西放在同一文件。实现这一目的必须使用特殊的注释语法标记文档&#xff0c;此外需要工具提取注…

用IDEA生成JAVADoc

用IDEA生成JAVADoc 1.在IDEA工具栏tools中&#xff0c;打开选项Generate JavaDoc(生成javaDoc 文件) 2.配置参数 1.选择生成JavaDoc文档的范围 2.输出目录自己专门设置一个文件夹&#xff0c;方便后期查阅 3.区域设置&#xff0c;决定文档的语言&#xff0c;简体中文就是zh_CN…

Java基础:生成JavaDoc文档的方法

Java Doc javadoc命令是用来生成自己API文档的 参数信息 author 作者名 version 版本号 since 指明需要最早使用的jdk版本 param 参数名 return 返回值情况 throws 异常抛出情况 一、用命令行生成JavaDoc 1.在IDEA选择选择要操作的类 2.在上方的导航栏里输出cmd 调出命令行窗…

Javadoc到底是什么??

Javadoc到底是什么&#xff1f;&#xff1f; Javadoc的定义 javadoc是Sun公司提供的一个技术&#xff0c;它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说&#xff0c;只要在编写程序时以一套特定的标签作注释&#xff0c;在程序编写完…

Java.Doc

java.doc命令是用来生成自己APL文档的 参数信息 author 作者名version 版本号since 指明需要最早使用的jdk版本param 参数名return 返回值情况throws 异常抛出情况 新建一个class 这一个注释是在类上面的 接下来跟着打 这是一个名字 这个名字需要参数 再注释时&#xff0c;自…

Java文档注释用法+JavaDoc的使用详解

Java文档注释JavaDoc的使用详解 简介 文档注释负责描述类、接口、方法、构造器、成员属性。可以被JDK提供的工具 javadoc 所解析&#xff0c;自动生成一套以网页文件形式体现该程序说明文档的注释。 注意&#xff1a;文档注释必须写在类、接口、方法、构造器、成员字段前面&…

Java教程:Javadoc(文档注释)详解

本篇文章由 泉州SEO www.234yp.com 整理发布&#xff0c;Java教程 www.234yp.com/Article/198092.html 谢谢合作&#xff01;Java教程Java 支持 3 种注释&#xff0c;分别是单行注释、多行注释和文档注释。文档注释以/**开头&#xff0c;并以*/结束&#xff0c;可以通过 Javado…

Javadoc (Java API 文档生成器)详解 [Javadoc 概述][Javadoc 标签][Javadoc 命令][Javadoc 生成 API 文档]

您的“关注”和“点赞”&#xff0c;是认可&#xff0c;是支持&#xff0c;是动力。 如意见相佐&#xff0c;可留言。 本人必将竭尽全力试图做到准确和全面&#xff0c;终其一生进行修改补充更新。 本文首发在IT羊资源网。 《IT羊资源网》&#xff0c;网址&#xff1a;https://…

Javadoc 使用详解

分享一个朋友的人工智能教程(请以“右键”->"在新标签页中打开连接”的方式访问)。比较通俗易懂&#xff0c;风趣幽默&#xff0c;感兴趣的朋友可以去看看。 很多程序对Javadoc都不重视&#xff0c;认识不到Javadoc的作用&#xff0c;很多人都是这样认为的&#xff1a;…

IntelliJ IDEA开发工具安装教程(2022.2最新版)

IntelliJ IDEA开发工具安装教程&#xff08;2022.2最新版&#xff09; 下载官网网址&#xff1a; https://www.jetbrains.com/idea/ 一、下载安装&#xff1a; 1&#xff0c; 打开官网下载IntelliJ IDEA&#xff0c;刚打开网站是这样的。点击Download 2. 左边Ultimate是旗舰…

Java小白必会!Intellij IDEA安装、配置及使用详细教程

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 配套开源项目资料 Github&#xff1a; GitHub - SunLtd/LearnJava Gitee&#xff1a; 一一哥/从零开始学Jav…

IDEA安装及使用教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 IDEA的下载及安装教程一、IDEA的下载二、安装教程1、安装2.运行IDEA 以上就是IDEA的安装及配置啦&#xff01;&#xff01;&#xff01; IDEA的下载及安装教程 提示…