创建 可以通过代码模板快速的录入Javadoc注释,你也可以选择通过Javadoc对话框以一种形象化的方式录入Javadoc注释。此外,JBuilder还提供了各种Javadoc的辅助功能,如JavadocInsight诱导录入,冲突报告和更正,特殊的todo标签等。
1、Javadoc对话框
在编辑器中,将光标放在类、方法、值域等元素定义处右击,在弹出的菜单中选择Add->Javadoc for XXX将调出Javadoc对话框。
打开Person.java文件,将光标移到构造函数中,依照上述操作步骤调出Javadoc对话框,如下图所示:
图 9 Javadoc对话框 |
在Description中列出了构造函数的描述信息,而Tags中列出构造函数所有Javadoc注释标签。你可以通过对话框右下角的按钮新增、编辑、删除标签,也可以调整它们的位置。
下面,我们为构造函数添加一个新的see标签,链接到Car.drive(int direction,int speed)函数中。
1.点击Javadoc for Constructor "Person"对话框的Add...按钮,弹出Add Javadoc Tag对话框,如图 10所示。
2.从Tag下拉框中选择see选项。
3.在Description中录入javadoc.tool.Car#drive(int,int)。
4.按OK返回Javadoc for Constructor "Person"对话框,再按OK在编辑器中生成这个新的标签。
图 10 Add Javadoc Tag对话框 |
实战经验:
虽然使用Javadoc对话框可以以一种形象的方式创建Javadoc注释,减少冲突概率,但由于需要在多个弹出的对话框中操作,且需要使用到键盘和鼠标,所以在键入速度和操作连贯性都很差。笔者在开发过程中几乎从未使用这种笨重的方法,既然是己所不欲,当然也不希望读者朋友使用。但初学者却可以通过Javadoc对话框加强对Javadoc标签的理解。
2、使用JavadocInsight
象MemberInsight、ParameterInsight等一样,JavadocInsight以诱导的方式辅助你快速录入正确的Javadoc标签。
由于Javadoc标签都带有字符,当你录入字符后JavadocInsight诱导窗口自动弹出,延时时间可以通过Tools->Perferences...->Editor->CodeInsight设置页中调整,默认为250ms。一个典型的JavadocInsight窗口如下图所示:
图 11 JavadocInsight |
在注释块中除可以用JavadocInsight诱导窗口外,可以通过Ctrl+Space使用MemberInsight诱导窗口录入类值域或方法,通过Ctrl+Alt+Space使用ClassInsight录入类名。JavadocInsight、MemberInsight和ClassInsight有如三剑客,保证快速和正确地录入Javadoc注释段。
提示: JavadocInsight窗口中除todo外都显示为粗体样式,todo标签不是Javadoc标准的标签,而是JBuilder自定义的标签。JBuilder允许定义自定义的Javadoc标签,所有自定义的Javadoc标签显示为非粗体样式。关于自定义Javadoc标签及todo标签的详细内容,参见本文后续的内容。 |
JBuilder允许你为了实现特殊的用途自定义扩展的Javadoc标签。在这小节里,我们来定义一个名为notice的自定义标签。
1.Project->Project Properties...->Build->Javadoc,在Javadoc设置页中列出了所有自定义的Javadoc标签。由于todo标签是JBuilder本身自定义标签,所以todo出现在列表中,如下图所示:
图 12 Javadoc自定义标签设置页 |
2.按New...按钮,弹出Create Custom Tag对话框,如下图所示:
图 13 创建自定义Javadoc标签对话框 |
·Tag name:notice,标签名
·Heading Text:出现在Javadoc 文档中的标题。
·Placement options:选择所有的选项,表示这个标签可以对代码中的任何类型元素进行注释。
3.按OK创建这个notice自定义标签。
打开Person.java用notice标签为sex值域写Javadoc注释:
1) /**notice 这是用于表示性别的变量,合法值只能为MALE和FEMALE*/
2) protected int sex;
对应的Javadoc文档如下图所示的文档:
图 14 自定义Javadoc标签生成的文档 |
其中"注意"为Create Custom Tag对话框中的Heading text的内容,在上图中我们特地标识出来。
4、使用代码模板
在第4章中我们曾经介绍过代码模板,你同样可以为常用的注释块创建一个Javadoc模板,"多快好省"地录入Javadoc注释。
按照习惯方式,每个类都需要一个类注释,类注释都是相似的,下面我们就来创建一个类注释代码模板,这个代码模板如下所示:
代码清单 2 类注释代码模板
1. /** 2. * <pre>|</pre> 3. * see 4. * version $Version, 2005-04-| 5. * author $Author 6. * since JDK1.3 7. */ |
1) Tools->Perferences...->Editor->Templates->Common,点击Common设置页的Add...按钮,弹出New Code Template对话框,如下图所示:
图 15 创建新代码模板对话框 |
·Template name:clscmt 模板的名字
·Description:class’s comment 模板描述信息
2) 在Code中录入代码清单 2的代码,其中带$前缀的标识是一个宏操作符,在调整模板录入注释块后,宏将被替换成具体的值,你可以通过Macro...按钮,在Insert Macro对话框中选择一个宏,如下图所示:
图 16 插入宏对话框 |
3) 录入代码模板后,按OK返回Common设置页,再按OK后完成创建clscmt代码模板。
创建完clscmt模板后,你就可以在编辑器中用Ctrl+J调用这个模板了,如下图所示:
图 17 调用clscmt代码模板 |
录入clscmt代码模板后,将产生一个类注释块,原$Author和$Version宏已经被替换成Project->Project Properties...->General设置页的class Javadoc fields列表中所设置的值了,如下图所示:
图 18 用代码模板录入Javadoc注释块 |
此时,General设置页的class Javadoc fields列表的设置情况如下图所示:
图 19 Javadoc域设置 |
Javadoc注释是对源码程序的说明,所以注释必须和源程序保持一致。假设一个方法共有两个入参,但对应的Javadoc仅对其中一个入参用param进行了说明,两者出现了不一致,这时就出现了注释冲突。JBuilder能够检查出这种不一致的冲突,结构窗格树中将出现一个Javadoc Conflicts的文件夹,报告当前Java文件中所有的注释冲突,如下图所示:
图 20 Javadoc冲突报告 |
每条冲突注释不但给出了冲突原因的简要描述,还指定了冲突发生的位置。你可以点击某冲突项,在弹出的对话框中选择Fix Javadoc Conflict for "XXX"修复这个冲突。你也可以右击Javadoc Conflicts文件夹,在弹出的菜单中选择Fix Javadoc Conflicts修复全部的冲突。
注意:
Javadoc冲突只有在Errors文件夹中所有的语法错误都已经得到解决后才会报告出来。
6、todo标签
todo是JBuilder自定义的标签,但它并不用于生成Javadoc文档的内容。它相当于一个"助记符",表示此处有一个未完成的工作或一个待改进的工作,方便日后检索和处理这些未尽之事。
当前程序文件中的所有todo标签归结在结构窗格的To Do文件夹下。假设我们在Person.java中添加两个todo标签,如下所示:
1. … 2. public class Person implements Serializable 3. { 4. public Person(String name ,int sex) throws PersonArgumentException 5. { 6. if(sex != MALE && sex != FEMALE) 7. throw new PersonArgumentException("参数不正确"); 8. /** todo 还需做更多的校验 */ 9. this.name = name; 10. this.sex = sex; 11. } 12. … 13. /** 14. * 设置性别 15. * param sex int 16. */ 17. public void setSex(int sex) 18. { 19. /** todo 需要对入参做判断 */ 20. this.sex = sex; 21. } 22. } |
在第8、19行添加上两个todo标签。todo标签可以放在程序的任何地方,而不象Javadoc标签一样必须放置在类、接口、方法等定义语句的前面。此时,这两个todo标签都将出现在结构窗格的To Do文件夹下,如下图所示:
图 21 To Do文件夹 |
点击To Do文件夹下的项目,编辑器定位到代码中相应的位置。
如果你在工程的许多地方都插入了todo标签,如何查看检索查看它们呢?通过Search->View Todos,信息窗格中将列出工程中所有的todo标记,如下图所示:
图 22 工程或工程组中所有todo标记 |
不但包含了todo的注释信息,结果列表中还列出了标记所在的程序文件及目录。你可以在Comment contains中输入关键字对todo标记的注释进行查询过滤。
提示: 一个工程性的软件项目,往往由于项目进度的紧迫,囿于时间和人力资源,你可能不得不舍弃一些好的解决方法而用一些易于实现的方法应急。你希望将来在允许的条件下再"重拾旧山河",常言道,好记性不如烂笔头,如果在相应的地方用todo标签象武陵人从桃花源返回一样"处处志之",就不会"遂迷不复得"了。 |