Java - 注释的最佳实践

概述

注释是对程序的说明,有助于开发者之间交流,方便理解程序。注释不是编程语句,在编译期间会被编译器忽略。

Java 支持以下三种注释方式:

  1. 单行注释

    以双斜杠 // 标识,只能注释一行内容,用在注释信息内容少的地方

    public static void main(String[] args) {
      // 这是一个单行注释
        System.out.println("单行注释方式");
    }
    
  2. 多行注释

    包含在 /**/ 之间,能注释多行的内容。为了可读性,一般首尾行不写注释信息

    public static void main(String[] args) {
      	/*
         * 这是多行注释
         * 可以换行注释
         * 同时可以包含单行注释
         * // 单行注释
         * 但是不能包含多行注释
         */
        System.out.println("单行注释方式");
    }
    
  3. 文档注释

    包含在 /***/ 之间,也能注释多行内容,一般用在类、方法和变量上面,用来描述其作用。注释后,在 IDE 中鼠标放在类、变量、方法上面会自动显示注释的内容

    /**
     * 文档注释
     * 可以注释多行内容
     * 也可以嵌套单行注释
     * // 单行注释
     * 但是不能嵌套多行注释
     * 
     * @author QH
     */
    public class Note {
    
        /**
         * 文档注释
         * 可以注释多行内容
         * 也可以嵌套单行注释
         * // 单行注释
         * 但是不能嵌套多行注释
         */
        private static final String USER = "admin";
    
        /**
         * 文档注释
         * 可以注释多行内容
         * 也可以嵌套单行注释
         * // 单行注释
         * 但是不能嵌套多行注释
         *
         * @param args 可变参数
         */
        public static void main(String[] args) {
            System.out.println(USER);
        }
    }
    

文档注释

文档注释可以通过 javadoc 命令把文档注释中的内容生成文档,并输出到 HTML 文件中,方便记录程序信息。还可以包含一个或多个 @ 标签,每个 @ 标签都要在新的一行

Javadoc 标签

Javadoc 工具可以识别文档注释中的一些特殊标签,这些标签一般以@开头,后跟一个指定的名字,有的也以{@开头,以}结束。Javadoc 可以识别的标签如下表所示:

标签描述示例
@author标识一个类的作者,一般用于类注释@author description
@deprecated指名一个过期的类或成员,表明该类或方法不建议使用@deprecated description
{@docRoot}指明当前文档根目录的路径Directory Path
@exception可能抛出异常的说明,一般用于方法注释@exception exception-name explanation
{@inheritDoc}从直接父类继承的注释Inherits a comment from the immediate surperclass.
{@link}插入一个到另一个主题的链接{@link name text}
{@linkplain}插入一个到另一个主题的链接,但是该链接显示纯文本字体Inserts an in-line link to another topic.
@param说明一个方法的参数,一般用于方法注释@param parameter-name explanation
@return说明返回值类型,一般用于方法注释,不能出现再构造方法中@return explanation
@see指定一个到另一个主题的链接@see anchor
@serial说明一个序列化属性@serial description
@serialData说明通过 writeObject() 和 writeExternal() 方法写的数据@serialData description
@serialField说明一个 ObjectStreamField 组件@serialField name type description
@since说明从哪个版本起开始有了这个函数@since release
@throws和 @exception 标签一样.The @throws tag has the same meaning as the @exception tag.
{@value}显示常量的值,该常量必须是 static 属性。Displays the value of a constant, which must be a static field.
@version指定类的版本,一般用于类注释@version info

对两种标签格式的说明:

  • @tag 格式的标签(不被{ }包围的标签)为块标签,只能在主要描述(类注释中对该类的详细说明为主要描述)后面的标签部分(如果块标签放在主要描述的前面,则生成 API 帮助文档时会检测不到主要描述)。
  • {@tag} 格式的标签(由{ }包围的标签)为内联标签,可以放在主要描述中的任何位置或块标签的注释中。

Javadoc 标签注意事项:

  • Javadoc 标签必须从一行的开头开始,否则将被视为普通文本。
  • 一般具有相同名称的标签放在一起。
  • Javadoc 标签区分大小写,代码中对于大小写错误的标签不会发生编译错误,但是在生成 API 帮助文档时会检测不到该注释内容。

Javadoc 命令

Javadoc 命令默认只提取 public、protected 修饰的部分。如果需要提取 private 修饰的部分,需要使用 -private 选项

Javadoc 用法格式如下:

javadoc [options] [packagenames] [sourcefiles]

对格式的说明:

  • options 表示 Javadoc 命令的选项;
  • packagenames 表示包名;
  • sourcefiles 表示源文件名。

在 cmd(命令提示符)中输入javadoc -help就可以看到 Javadoc 的用法和选项(前提是安装配置了JDK),下面列举 Javadoc 命令的常用选项:

名称说明
-public仅显示 public 类和成员
-protected显示 protected/public 类和成员(默认值)
-package显示 package/protected/public 类和成员
-private显示所有类和成员
-d <directory>输出文件的目标目录
-version包含 @version 段
-author包含 @author 段
-splitindex将索引分为每个字母对应一个文件
-windowtitle <text>文档的浏览器窗口标题

Idea 生成 API 文档

在这里插入图片描述
选择生成 JavaDoc 文件的范围,输出目录,以及需要生成的文件修饰符:

注意编码问题,使用 -encoding UTF-8 -charset UTF-8 命令行参数,指定 Java 源码的编码为 UTF-8

在这里插入图片描述

上面文档注释生成的 Javadoc 文档如下:

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值