Java 文档注释

400 查看

概述

Java只有3种注释方式。

  • //,单行注释

  • /* */,块注释

  • 说明注释,@author,@version

说明注释允许你在程序中嵌入关于程序的信息。你可以使用javadoc工具软件来生成信息,并输出到HTML文件中。

Javadoc 标签

javadoc工具软件识别以下标签

标签 描述
@author 标示一个类的作者
@deprecated 标识一个过期的类或成员
{@docRoot} 指明当前文档跟目录的路径
@exception 指明一个类抛出的异常
@throws @exception一样
{@inheritDoc} 从直接父类继承的注释
{@link} 插入一个到另一个主题的链接
{@linkplain} 插入一个到另一个主题的链接,但该链接显示纯文本字体
@param 说明一个方法的参数
@return 说明返回值类型
@see 指定一个到另一个主题的链接
@serial 说明一个序列化属性
@serialData 说明通过 writeObject() 和 writeExternal() 方法写的数据
@serialField 说明一个ObjectStreamField组件
@since 标记当引入一个特定的变化时
{@value} 显示常亮的值,必须是static属性
@version 指定类的版本号

文档注释

在开始的/**之后,第一行或几行是关于类、变量和方法的主要描述。

之后,你可以包一个或多个各种各样的@标签。每一个@标签必须在一个新行的开始。

多个相同类型的标签应该放成一组。例如,如果你有三个@see标签,可以将它们一个接一个的放在一起。

/** 
* 类描述
* @author panda
* @version 1.2
*/
...

Javadoc 输出

Javadoc 工具将你Java程序的源代码作为输入,输出一些包含你程序注释的HTML文件。

每一个类的信息将在独自的HTML文件里。Javadoc也可以输出继承的树形结构和索引。

由于Javadoc的实现不同,工作也可能不同,你需要检查你的Java开发系统的版本等细节,选择合适的Javadoc版本。

实例

package com.coder4j.jse.javadoc;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * 输入一个数,输出其平方数。
 * 
 * @author panda
 * @version 1.2
 */
public class SquareNum {
    
    /**
     * 输出平方值。
     * 
     * @param num
     *            待求平方数
     * @return 平方值
     */
    public double square(double num) {
        return num * num;
    }

    /**
     * 用户输入一个数
     * 
     * @return 返回用户输入的数
     * @exception IOException
     *                可能抛出的异常
     * @see IOException
     */
    public double getNumber() throws IOException {
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader inData = new BufferedReader(isr);
        String str;
        str = inData.readLine();
        return (new Double(str)).doubleValue();
    }

    /**
     * 入口主函数
     * 
     * @param args
     *            Unused.
     * @return Nothing.
     * @exception IOException
     *                On input error.
     * @see IOException
     */
    public static void main(String args[]) throws IOException {
        SquareNum ob = new SquareNum();
        double val;
        System.out.println("请输入一个数: ");
        val = ob.getNumber();
        val = ob.square(val);
        System.out.println("平方值是: " + val);
    }
}

我在eclipse里写了这个类,右键export,选择Java/javadoc 然后按提示确认,控制台输出:

正在加载程序包com.coder4j.jse.javadoc的源文件...
正在构造 Javadoc 信息...
标准 Doclet 版本 1.7.0_75
正在构建所有程序包和类的树...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/com/coder4j/jse/javadoc/SquareNum.html...
/Users/panda/Documents/lunaspace/code4j/src/com/coder4j/jse/javadoc/SquareNum.java:52: 警告 - 不能在返回类型为空的方法中使用 @return 标记。
正在生成/Users/panda/Documents/lunaspace/code4j/doc/com/coder4j/jse/javadoc/package-frame.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/com/coder4j/jse/javadoc/package-summary.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/com/coder4j/jse/javadoc/package-tree.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/constant-values.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/com/coder4j/jse/javadoc/class-use/SquareNum.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/com/coder4j/jse/javadoc/package-use.html...
正在构建所有程序包和类的索引...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/overview-tree.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/index-files/index-1.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/index-files/index-2.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/index-files/index-3.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/index-files/index-4.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/deprecated-list.html...
正在构建所有类的索引...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/allclasses-frame.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/allclasses-noframe.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/index.html...
正在生成/Users/panda/Documents/lunaspace/code4j/doc/help-doc.html...
1 个警告

默认在当前项目下新增doc目录

doc/
|--com
|--index-files
|--resources
|--allclasses-frame.html
|--allclasses-noframe.html
|--constant-values.html
|--deprecated-list.html
|--help-doc.html
|--index.html
|--overview-tree.html
|--package-list
|--stylesheet.css

可以直接访问index.html,你会看到类似这样的页面。

不同的Javadoc版本可能稍有不同哟。

参考资料