一、Javadoc的基本信息:
javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。javadoc命令是用来生成自己API文档的,使用方式:使用命令行在目标文件所在目录输入javadoc +文件名.java。
Javadoc主要用于代码的注释规范性。
Javadoc命令是用来生成自己的API文档,使用方式:
javadoc 源文件名.java
javadoc -d 文档存放目录 源文件名.java
通过IDEA生成Javadoc : Tools -> Generate JavaDoc
二、 Javadoc注释规范 :
// 注释一行
/ * */ 注释若干行
/** ……*/ 注释若干行,写入Javadoc文档
如图:
代码:
/**
* show 方法的简述.
*
show 方法的详细说明第一行
* show 方法的详细说明第二行
* @param b true 表示显示,false 表示隐藏
* @return 没有返回值
*/ public void show(boolean b) { frame.show(b); }
三、Javadoc的基本用法
文档格式:
写在类上的文档标注一般分为三段:
第一段:概要描述,通常用一句或者一段话简要描述该类的作用,以英文句号作为结束
第二段:详细描述,通常用一段或者多段话来详细描述该类的作用,一般每段话都以英文句号作为结束
第三段:文档标注,用于标注作者、创建时间、参阅类等信息
生成文档是HTML格式。
换行
分段
(写在段前))
示例:
在注释中出现以@开头东东被称之为Javadoc文档标记,是JDK定义好的,如@author、@version、@since、@see、@link、@code、@param、@return、@exception、@throws等。
主要的文档标记
1. @link:{@link 包名.类名#方法名(参数类型)} 用于快速链接到相关代码
@link的使用语法{@link 包名.类名#方法名(参数类型)},其中当包名在当前类中已经导入了包名可以省略,可以只是一个类名,也可以是仅仅是一个方法名,也可以是类名.方法名,使用此文档标记的类或者方法,可用通过按住Ctrl键+单击 可以快速跳到相应的类或者方法上,解析成html其实就是使用< code> 包名.类名#方法名(参数类型)< /code>
2. @code: {@code text} 将文本标记为code
{@code text} 会被解析成 text
将文本标记为代码样式的文本,在code内部可以使用 < 、> 等不会被解释成html标签, code标签有自己的样式
一般在Javadoc中只要涉及到类名或者方法名,都需要使用@code进行标记。
3. @param
一般类中支持泛型时会通过@param来解释泛型的类型
4. @author
详细描述后面一般使用@author来标记作者,如果一个文件有多个作者来维护就标记多个@author,@author 后面可以跟作者姓名(也可以附带邮箱地址)、组织名称(也可以附带组织官网地址)
5. @see
@see 一般用于标记该类相关联的类,@see即可以用在类上,也可以用在方法上。
6. @since 从以下版本开始
@since 一般用于标记文件创建时项目当时对应的版本,一般后面跟版本号,也可以跟是一个时间,表示文件当前创建的时间
7. @version 版本
@version 用于标记当前版本,默认为1.0
8. @param
@param 后面跟参数名,再跟参数描述
9. @return
@return 跟返回值的描述
10. @value
用于标注在常量上,{@value} 用于表示常量的值
此外还有@serial、@serialField、@serialData、{@docRoot}、{@inheritDoc}、{@literal}、{@code} {@value arg}几个不常用的标签,由于不常使用,我们不展开叙述,感兴趣的读者可以查看帮助文档。
(1)概要描述:通常用一句或者一段话简要描述该类的作用, 如:
如上图利用author和version描述了该类的作者和版本
切记:当Java源代码中包含中文字符时,我们在用javac编译时会出现“错误:编码GBK的不可映射字符”。
由于JDK是国际版的,我们在用javac编译时,编译程序首先会获得我们操作系统默认采用的编码格式(GBK),然后JDK就把Java源文件从GBK编码格式转换为Java内部默认的Unicode格式放入内存中,然后javac把转换后的Unicode格式的文件编译成class类文件,此时,class文件是Unicode编码的,它暂存在内存中,紧接着,JDK将此以Unicode格式编码的class文件保存到操作系统中形成我们见到的class文件。当我们不加设置就编译时,相当于使用了参数:javac -encoding GBK Test.java,就会出现不兼容的情况。
使用-encoding参数指明编码方式:javac -encoding UTF-8 Test.java,就可以了。
当更改编码方式为UTF-8时就可以就行生成含有中文字符的API文档
打开生成API文档查看刚刚定义的javadoc注释
当然你要是定义的英文注释就直接忽视编码问题
最后看一下阿里巴巴的Javadoc注释规范
阿里巴巴Java开发手册之注释规约:
类,类属性、类方法的注释必须使用Javadoc规范,使用/*内容/格式,不得使用//XX方式。
所有的抽象方法(包括接口中的方法)必须要用Javadoc注释,除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。
所有的类都必须添加创建者和创建日期。
方法内部的单行注释,在被注释语句上方另起一行,使用//注释。方法内部的多行注释,使用/* */注释,注意与代码对齐。
所有的枚举类型字段必须要有注释,说明每个数据项的用途。
与其用不熟练的英文来注释,不如用中文注释把问题说清楚。专有名词与关键字保持英文原文即可。
在修改代码的同时,要对注释进行相应的修改,尤其是参数,返回值,异常,核心逻辑等的修改。
谨慎注释掉代码。要在上方详细说明,而不是简单的注释掉。如果无用,则删除。
对于注释的要求:
(1)能够准确反映设计思想和代码逻辑。
(2)能够描述业务含义,使其他程序员能够迅速了解代码背后的信息。完全没有注释的大段代码对于阅读者形同天书;注释是给自己看的,应做到即使间隔很长时间,也能清晰理解当时的思路,注释也是给继任者看的,使其能够快速接替自己的工作。
好的命名、代码结构是自解释的,注释力求精简准确、表达到位。避免出现注释的一个极端:过多过滥的注释,因为代码的逻辑一旦修改,修改注释是相当大的负担。
特殊注释标记,请标明标记人与标记时间。注意及时处理这些标记,通过标记扫描经常处理此类标记。有时候线上故障就来源于这些标记处的代码。