Java 语言支持三种类型的注释 -
序号 | 描述 |
---|---|
1 | /* text */ 编译器忽略从 /* 到 */ 的所有内容。 |
2 | //text 编译器会忽略从 // 到行尾的所有内容。 |
3 | /** 文档 */ 这是文档注释,一般而言它被称为文档评论。 JDK javadoc 工具在准备自动生成的文档时使用文档注释。 |
本章主要是解释 Javadoc。我们将看到如何利用 Javadoc 为 Java 代码生成有用的文档。
什么是 Javadoc?
Javadoc 是 JDK 附带的一个工具,用于生成来自 Java 源代码的 HTML 格式的 Java 代码文档,这需要预定义格式的文档。
下面是一个简单的示例,其中 /*….*/ 内的行是 Java 多行注释。同样, // 前面的行是 Java 单行注释。
示例
/**
* The HelloWorld program implements an application that
* simply displays "Hello World!" to the standard output.
*
* @author Zara Ali
* @version 1.0
* @since 2014-03-31
*/
public class HelloWorld {
public static void main(String[] args) {
// 打印hello world
System.out.println("Hello World!");
}
}
输出
Hello World!
您可以在描述部分中包含所需的 HTML 标记。例如,以下示例使用 <h1>...</h1> 作为标题,并且 <p> 用于创建段落分隔符 -
示例
/**
* <h1>Hello, World!</h1>
* The HelloWorld program implements an application that
* simply displays "Hello World!" to the standard output.
* <p>
* Giving proper comments in your program makes it more
* user friendly and it is assumed as a high quality code.
*
*
* @author Zara Ali
* @version 1.0
* @since 2014-03-31
*/
public class HelloWorld {
public static void main(String[] args) {
// 打印hello world
System.out.println("Hello World!");
}
}
输出
Hello World!
javadoc 标签
javadoc 工具可识别以下标签
标签 | 描述 | 语法 | |
---|---|---|---|
@author | 添加类的作者。 | @author name-text | |
{@code} | 以代码字体显示文本,而不将文本解释为 HTML 标记或嵌套的 javadoc 标记。 | {@code text} | |
{@docRoot} | 表示生成文档根目录的相对路径任何生成页面的目录。 | {@docRoot} | |
@deprecated | 添加一条注释,表明不应再使用此 API。 | @deprecated deprecatedtext | |
@exception | 将子标题添加到生成的文档中,其中包含类名和描述文本。 | @exception class-name description | |
{@inheritDoc} | 从最近可继承类或可实现接口继承注释。 | 从直接超类继承注释。 | |
{@link} | 插入带有可见文本标签的内联链接,该标签指向指定包、类或引用类的成员名称。 | {@link package.class#member label} | |
{@ linkplain} | 与 {@link} 相同,只是链接的标签以纯文本而不是代码字体显示。 | {@linkplain package.class#member label} | |
@param | 将具有指定参数名称和后跟指定描述的参数添加到"参数"部分。 | @param parameter-name description | |
@return | 添加带有描述文本的"return"部分。 | @return description | |
@see | 添加带有链接的"另请参阅"标题或指向引用的文本条目。 | @see reference | |
@serial | 在文档注释中用于默认可序列化字段。 | @serial field-description | include | exclude | |
@serialData | 记录由 writeObject( ) 或 writeExternal( ) 方法写入的数据。 | @serialData data-description | |
@serialField | 说明一个ObjectStreamField组件 | @serialField 字段名称 字段类型 字段描述 | |
@since | 添加带有指定的"Since"的标题-生成的文档的文本。 | @since release | |
@throws | @throws 和 @exception 标记是同义词。 | @throws 类名描述 | |
{@value} | When { @value} 用于静态字段的文档注释中,它显示该常量的值。 | {@value package.class#field} | |
@version | 使用 -version 选项时,将带有指定版本文本的"版本"副标题添加到生成的文档中。 | @version 版本号 |
示例
以下程序使用了一些可用于文档注释的重要标签。您可以根据需要使用其他标签。
有关 AddNum 类的文档将在 HTML 文件 AddNum.html 中生成,但同时也会生成一个名为 index.html 的主文件
import java.io.*;
/**
* <h1>Add Two Numbers!</h1>
* The AddNum program implements an application that
* simply adds two given integer numbers and Prints
* the output on the screen.
* <p>
* <b>Note:</b> Giving proper comments in your program makes it more
* user friendly and it is assumed as a high quality code.
*
* @author Zara Ali
* @version 1.0
* @since 2014-03-31
*/
public class AddNum {
/**
* This method is used to add two integers. This is
* a the simplest form of a class method, just to
* show the usage of various javadoc Tags.
* @param numA This is the first paramter to addNum method
* @param numB This is the second parameter to addNum method
* @return int This returns sum of numA and numB.
*/
public int addNum(int numA, int numB) {
return numA + numB;
}
/**
* This is the main method which makes use of addNum method.
* @param args Unused.
* @return Nothing.
* @exception IOException On input error.
* @see IOException
*/
public static void main(String args[]) throws IOException {
AddNum obj = new AddNum();
int sum = obj.addNum(10, 20);
System.out.println("Sum of 10 and 20 is :" + sum);
}
}
让我们编译并运行上面的程序,这将产生以下结果 -
Sum of 10 and 20 is :30
现在,使用 javadoc 实用程序处理上面的 AddNum.java 文件,如下所示 -
$ javadoc AddNum.java
Loading source file AddNum.java...
Constructing Javadoc information...
Standard Doclet version 1.7.0_51
Building tree for all the packages and classes...
Generating /AddNum.html...
AddNum.java:36: warning - @return tag cannot be used in method with void return type.
Generating /package-frame.html...
Generating /package-summary.html...
Generating /package-tree.html...
Generating /constant-values.html...
Building index for all the packages and classes...
Generating /overview-tree.html...
Generating /index-all.html...
Generating /deprecated-list.html...
Building index for all classes...
Generating /allclasses-frame.html...
Generating /allclasses-noframe.html...
Generating /index.html...
Generating /help-doc.html...
1 warning
$
您可以在此处查看所有生成的文档 - AddNum。如果您使用的是 JDK 1.7,则 javadoc 不会生成出色的 stylesheet.css,因此我们建议从