前提:文档注释文档注释只负责描述类(class)接口(interface)方法(method)构造器(constructor)成员字段(field)。相应地,文档注释必须写在类、接口、方法、构造器、成员字段前面,而写在其他位置,比如函数内部,是无效的文档注释。

写作规范:

格式:

/**
*描述部分(description)
*
*标记部分(block tags)
*/

第一行以特殊的文档定界符 /**开头, 在描述段落和标记段落之间空一行,描述段落和标记段落必须分开,不能揉在一起,描述段落必须在标记段落之前, 每一行注释都应该跟后面描述的类、方法等保持同样距离的缩进。

描述部分自然不用多说,所谓的标记指的是@param, @return, @see之类的。

描述部分说明

除了普通的文本之外,描述部分可以使用:

1. HTML语法标签,例如 <b>xxx</b> 

2. javadoc规定的特殊标签,例如 {@link xxx} 。标签的语法规则是:{@标签名 标签内容}

标签在有javadoc工具生成文档时会转化成特殊的内容,比如 {@link URL} 标签会被转化成指向URL类的超链接,善用javadoc工具的复制机制避免不必要的注释:


如果一个方法覆盖了父类的方法或实现了接口种的方法,那么javadoc工具会在该注释里添加指向原始方法的链接,此外如果新方法没有注释,那么javadoc会把原始方法的注释复制一份作为其注释,但是如果新方法有注释了,就不会复制了。


描述部分风格:

1. 使用 <code>关键字</code> 来强调关键字;
2. 控制 {@link xxx} 的数量;
3. 描述一个方法时,应当只保留方法名字,不要附带方法的参数。

标记部分说明

常见标记:

1.  @author  作者,没有特殊格式要求,名字或组织名称都可以
2.  @version  软件版本号(注意不是java版本号),没有特殊格式要求
3.  @param  方法参数,格式为: @param 参数名称 参数描述 

  • 可以在参数描述中说明参数的类型
  • 可以在参数名称和参数描述之间添加额外的空格来对齐
  • 破折号或其他标点符号不能出现在参数描述之外的地方

4.  @return  方法返回值,格式为: @return 返回值描述 ,如果方法没有返回值就不要写@return
5.  @deprecated 应该告诉用户这个API被哪个新方法替代了,随后用 @see 标记或 {@link} 标记指向新API,比如:


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


6.  @throws (或 @exception )包含方法显式抛出的检查异常(Checked Exception),至于非显示抛出的其他异常(Unchecked Exception),除非特别有必要,否则就别写了。一个原则就是,只记录可控的问题,对于不可控的或不可预测的问题,不要往上面写。


检查异常:在try语法块中触发,在catch块中捕获的异常,这些异常会由编译器在编译阶段检查并强制程序员处理 非检查异常:包括运行时异常(RuntimeException)和错误(Error)。


标记部分风格:
1. 按照如下顺序提供标记


@author(只出现在类和接口的文档中) @version(只出现在类和接口的文档中) @param(只出现在方法或构造器的文档中) @return(只出现在方法中) @exception(从java1.2之后也可以使用@thrown替代) @see @since @serial(也可以使用@serialField或@serialData替代) @deprecated


此外,如果有多个相同标记,也要注意顺序:


多个@author标记,应该按照时间顺序排列,即原作者应该排在第一个位置 多个@param标记,应该按照参数定义的顺序排列 多个@exception(或是@thrown)应该按照异常的字母顺序排列 多个@see标记,应该按照注释的逻辑顺序排列,即从最近的到最远的,从最具体的到最一般的


2. 必须包含的标记


如果方法有参数,@param标记必须包含,而且每个对应一个参数 如果方法有返回值,@return标记必须包含


其他注释

1. 包级别的文档注释
从java1.2起允许包级别的文档注释,用以描述包信息。每个包都可以有自己的包文档注释,这些注释被写在叫package.html的单独文件中,并且放至于与源码(*.java)相同的路径下,注意,一定不能单独放置在其他路径。
javadoc工具按照以下流程处理package.html:


把主要内容复制到最终生成的package-summary.html文件中 处理@see, @since, 或{@link}标记 把第一句话复制到javadoc的索引中;


在包注释主要介绍一下这个包大致是做什么用的、背景信息、在使用方面需要注意的地方等等信息

2. 匿名、内部类的文档注释
javadoc不会提取内部类的文档注释,所以如果想要在最终生成的文档中包含内部类的信息,方法就是——写在外部类的文档注释里。

使用eclipse生成注释

使用eclipse生成文档(javadoc)主要有三种方法: 

1,在项目列表中按右键,选择Export(导出),然后在Export(导出)对话框中选择java下的javadoc,提交到下一步。 
在Javadoc Generation对话框中有两个地方要注意的: 
javadoc command:应该选择jdk的bin/javadoc.exe 
destination:为生成文档的保存路径,可自由选择。 
按finish(完成)提交即可开始生成文档。 

2,用菜单选择:File->Export(文件->导出), 
剩下的步骤和第一种方法是一样的。 

3,选中要生成文档的项目,然后用菜单选择, 
Project->Generate Javadoc直接进入Javadoc Generation对话框,剩余的步骤就和第一种方法在Javadoc Generation对话框开始是一样的。 

导出的时候可能会出现因为乱码而导出失败,给 javadoc.exe 加上编码参数就OK。 

具体的: 
在Eclipse里 export 选 JavaDoc,在向导的最后一页的Extra JavaDoc Options 里填上参数即可 

比如项目采用的是UTF-8的编码就填:-encoding UTF-8 -charset UTF-8