第2章番外2 令人惊喜的注释文档

简介:

单行和多行注释

Java沿用了C++的注释风格,用//进行单行注释,用/**/进行多行代码的注释,有时候多行注释中间的每一行开头会有一个*,但本质上是一样的。

下面是多行注释的两种形式:

/* This is a comment

* that continues

* across lines

*/

 

/* This is a comment that

continues across lines */

注释文档

Java带给我最大的惊喜还是它的注释文档,注释文档的出现将代码和文档链接起来,为我们免去了编写修改文档的麻烦,而且生成的HTML文档格式也是美cry的。

javadoc

javadoc就是用于提取注释生成文档的工具,它是JDK的一部分。Javadoc不仅整合注释里的信息,还把相邻的类名或者方法名提取出来,让我们用最小的力气生成好看的文档。

生成方式

1. 命令行:

javadoc -d 文档存放目录 -author -version 源文件名.java

这条命令编译一个名为"源文件名.java"的 java 源文件,并将生成的文档存放在"文档存放目录"指定的目录下,生成的文档中 index.html 就是文档的首页。-author 和 -version 两个选项可以省略。

2. Eclipse可以直接导出。

注释语法

使用javadoc的方式有两种:嵌入HTML和文档标签。

“独立文档标签”:以“@”字符开头,“@”字符要置于注释行的最前面

“行内文档标签”:以“@”字符开头,可以出现在 javadoc 注释中的任何地方,但要在花括号内。

正如下面的例子:

/** A class comment */

public class DocTest {

/** A variable comment */

public int i;

/** A method comment */

public void f() {}

}

注意,javadoc 只能为publicprotected成员进行文档注释。 private和包内可访问成员的注释会被忽略掉。不过可以用-private 进行标记,以便对private成员一并处理。

HTML命令重新嵌入格式化的就不说了,原来的格式已经足够好了。

标签示例

1. @see:引用其他类

 

@see 标签允许你引用其他类的文档。javadoc 会在其生成的 HTML 文件中,用@see 标签链接到其他文档。格式如下:

@see classname

@see fully-qualified-classname

@see fully-qualified-classname#method-name

每种格式都会在生成的文档中加入一个具有超链接的“See Also”条目。但是 javadoc 不会

检查你所提供的超链接是否有效。

 

2. {@link package.class#member label}

该标签与@see 极其相似,只是它可以用于行内,并且是用“label”作为超链接文本而不用

See Also”。

 

3. {@docRoot}

该标签产生到文档根目录的相对路径,用于文档树页面的显式超链接。

 

4. {@inheritDoc}

该标签从当前这个类的最直接的基类中继承相关文档到当前的文档注释中。

 

5. @version

该标签的格式如下:

@version version-information

其中,“version-information”可以是任何你认为适合作为版本说明的重要信息。如果 javadoc

命令行使用了“-version”标记,那么就可以从生成的 HTML 文档中提取出版本信息。

 

6. @author

该标签的格式如下:

@author author-information

其中,“author-information”,望文生义你也知道,应该是你的姓名,也可以包括电子邮件

地址或者其他任何适宜的信息。如果 javadoc 命令行使用了“-author”标签,那么就可以从生成的 HTML 文档中提取作者信息。

可以使用多个标签,以便列出所有作者,但是它们必须连续放置。全部作者信息会合并到

同一段落,置于生成的 HTML 中。

 

7. @since

该标签允许你指定程序代码最早使用的版本,你将会在 HTML Java 文档中看到它被用来指

定所用的 JDK 版本。

 

8. @param

该标签用于方法文档中,形式如下:

@param parameter-name description

其中,“parameter-name”是方法的参数列表中的标识符,“description”的文本可延续数行,终止于新的文档标签出现之前。你可以使用任意数量的此标签,大约每个参数都有一个这样的标签。

 

9. @return

该标签用于方法文档,格式如下:

@return description

其中,“description”用来描述返回值的含义,可以延续数行。

 

10. @throws

“异常”(Exception)将在第 章论述。简言之,它们是由于某个方法调用失败而“抛出”

的对象。尽管在调用一个方法时,只有出现一个异常对象,但是某个特殊方法可能会产生任

意多、不同类型的异常,所有这些异常都需要进行说明。所以,异常标签的格式如下:

        @throws fully-qualified-class-name description

其中,“fully-qualified-class-name”给出了一个异常类的完整名字,而且该异常类已经

在某处定义过。而“description”(同样可以延续数行)告诉你为什么此特殊类型的异常会

在方法调用中出现。

 

11. @deprecated

该标签用于指出一些旧特性已由改进的新特性所取代,建议用户不要再使用这些旧特性,因

为在不久的将来,它们很可能会被移除。如果使用一个标记为@deprecated 的方法,则会引

起编译器的警告。

 

示例代码:试下生成HTML文件感受下~~

//HelloDate.java

import java.util.*;

/** The first Thinking in Java example program.
* Displays a string and today's date.
* @author Bruce Eckel
* @author www.BruceEckel.com
* @version 2.0
*/
public class HelloDate {
/** Sole entry point to class & application
   * @param args array of string arguments
   * @return No return value
   * @exception exceptions No exceptions thrown
*/
public static void main(String[] args) {
    System.out.println("Hello, it's: ");
    System.out.println(new Date());
}
} ///:~


目录
相关文章
|
6月前
|
算法 程序员 开发者
探寻代码世界中的独特注释
作为开发者在编程开发中,注释是我们编写的代码中不可或缺的一部分,尽管我们常常强调清晰的代码本身就是最好的文档,但注释依然在软件开发的全生命周期中发挥着不可替代的关键作用,扮演着关键的角色,帮助我们更好地理解和维护代码。而在代码注释的海洋中,有时我们会发现一些独特而富有创意的注释,它们既有幽默感,又蕴含着智慧,或让人会心一笑,或引发深思。有些注释展现了开发者的幽默和创造力,通过有趣的文字让我们在编码过程中轻松一笑;有些注释则引发了思考,激发了我们对更好解决方案的探索和思考;还有些注释融入了文化和历史元素,为代码增添了趣味和人文关怀。代码注释不仅仅是对代码功能的解释,更是程序员与读者之间的沟通桥梁
51 1
探寻代码世界中的独特注释
|
6月前
|
程序员 开发者
欢迎讨论--你见过哪些独特的代码注释
【5月更文挑战第11天】欢迎讨论--你见过哪些独特的代码注释
|
6月前
|
XML 程序员 C#
C注释的高级使用技巧,让你的代码无敌了!
C注释的高级使用技巧,让你的代码无敌了!
30 0
|
存储 JavaScript 前端开发
20个JS精简代码无形装逼集合,最为致命,记得收藏好
20个JS精简代码无形装逼集合,最为致命,记得收藏好
|
人工智能 自然语言处理
爆火的ChatGPT太强了!写代码、改bug,网友:可取代Stack Overflow了
爆火的ChatGPT太强了!写代码、改bug,网友:可取代Stack Overflow了
181 0
|
前端开发 JavaScript 小程序
印象最深的一个bug——使用uinapp做混合开发静态图片在安卓端不显示
这几天一直在做混合开发,使用的是uni-app开发的,一套代码,多端使用,适用于各个平台。听起来很完美,使用过程不可多说,不知道是因为我们的需求变态还是我们团队两端技术水平太差。总之,开发联调过程十分痛苦,加上uniapp的调试十分困难,一度让我们两端互怼。这其中我印象最深的一个bug就是在对接联调总出现的
1665136 33
印象最深的一个bug——使用uinapp做混合开发静态图片在安卓端不显示
|
程序员 C++ 知识图谱
你见过哪些操蛋的代码?切勿模仿!
本文章展示的代码的片段来自知乎的同名问答贴,举出来一些反面例子,切勿模仿,就当轻松一刻了吧。
你见过哪些操蛋的代码?切勿模仿!
|
SQL 前端开发 关系型数据库
【氚云】分享一些简单粗糙的代码模板(新手指向,有误请提)
分享一些简单粗糙的代码模板(新手指向,有误请提)
423 0
文字处理技术:搞明白了表格是如何参与文字方向的
文字处理技术:搞明白了表格是如何参与文字方向的
106 0
|
架构师 程序员
你见过哪些操蛋的代码?切勿模仿! 否则后果自负
本文章展示的代码的片段来自知乎的同名问答贴,举出来一些反面例子,切勿模仿,就当轻松一刻了吧。
下一篇
无影云桌面