javadoc文档注释
如果在源代码中添加以专用的定界符/**开始的注释,那么就可以很容易的生成一个HTML格式的文档,就像我们日常看的JAVA API 文档,在界定符中间的自由文本中可以使用一些HTML的标签,用来修饰文字,如:<em></em>
等,下面就来介绍一下各个注释的规则。
1 类注释
类注释必须放在import语句之后,类定义之前。
/**A{@code Card} objectrepresents a playing card,
* such as "Queen of Hearts". A card has a suit
* (Diamond,Heart,Spade or Club) and a value
* (1 = Ace,2...10,11 = Jack,12 = Queen,13 = King)
*/
2 方法注释
每一个方法注释必须放在所描述的方法之前。除了通用标记之外,还可以使用下面的标记。
- @param :这个标记将对当前方法的“para”(参数)部分添加一个条目。这个描述可以占据多行,并可以使用HTML标记。一个方法的所有@param标记必须放在一起。
- @return : 这个标记将对当前方法添加“return”部分。这个描述可以跨越多行,并可以使用HTML标记。
- @throws:这个标记将t添加一个注释,用于表示这个方法有可能抛出异常
3 域注释
只需要对公有域建立文档。例如:
/**
*The "Hearts" card suit
*/
public static final int HEARTS = 1;
4 通用注释
下面的标记可以用在类文档的注释中。
- @author :这个标记将产生一个“author”(作者)条目。可以使用多个@author标记,每一个标记对应一个作者。
- @version:这个标记将产生一个“version”(版本)条目。这里的文本可以是对当前版本的任何描述。
下面的标记可以用于所有的文档注释中。
- @since :这个标记将产生一个“since”(始于)条目。这里的text可以是对引入特性的版本描述。例如:@since version 1.7.1。
- @deprecated:这个标记将对类、方法或变量添加一个不再使用的注释。文本中给出了取代的建议。
- @see :这个标记将在“see also”部分增加一个超链接,它可以用于类中,也可以用于方法中。
例:
@see com.horstmann.corejava.Employee#raiseSalary(double)
建立一个链接到com.horstmann.corejava.Employee类的raiseSalary(double) 方法的超链接。
@see <a href="www.horstmann.com/corejava.html">The Core java home page</a>
建立一个到外部的超链接。
- @link:这个标记可以在注释中的任何位置放置指向其他类或方法的超级链接,以及插入一个专用的标记。
例:
@link package.class#method
具体用法与@see的用法规则一致。
5 包与概述注释
可以直接将类、方法和变量的注释放置在java源文件中,只要用/**...*/
文档注释界定就可以了。但是,想要产生包注释,就需要在每一个包目录中添加一个单独的文件,可以有如下两种选择:
- 提供一个以package.heml命名的HTML文件。在标记
<body>...</body>
之间的所有文本都会被抽取出来。 - 提供一个以package-info.java命名的java文件。这个文件必须包含一个初始的以
/**
和*/
界定的javadoc注释,跟随在一个包语句之后。它不应该包含更多的代码或注释。
还可以为所有的源文件提供一个概述性的注释。这个注释将被放置在一个名为overview.html的文件中,这个文件位于包含所有源文件的父目录中。标记<body>...</body>
之间的所有文本将被抽取出来。当用户从导航栏中选择“overview”时,就会显示出这些注释的内容。
6 注释的抽取
这里,假设HTML文件将被存放在目录docDirectory下。执行以下步骤:
- 切换到包含想要生成文档的源文件目录。如果有嵌套的包要生成文档,例如com.horstmann.corejava,就必须切换到包含子目录com的目录(如果存在overview.html文件的话,这也是它所在目录)。
- 如果是一个包,应该运行命令:
javadoc -d docDirectory nameOfPackage
或对于多个包生成文档,则运行:
javadoc -d docDirectory nameOfPackage1 nameOfpackage2...
如果文件在默认包中,就应该运行:
javadoc -d docDirectory *.java
可以使用-link,用来为标准类添加超链接。例如:
javadoc -link http://docs.oracle.com/javase/8/docs/api *.java
那么,所有的标准类库类都会自动的链接到Oracle网站的文档。