1、2009-10-29Javadoc 注释标签语法关键字: javadoc 注释标签语法 核心提示:javadoc 可以根据项目代码的注释(当然是规范化的)自动生成HTML 格式的 API 文档。 javadoc 可以根据项目代码的注释(当然是规范化的)自动生成 HTML 格式的API 文档。 三种注释类型(注释必须紧贴着注释体,不然 javadoc 会忽略): 类注释 变量注释 方法注释 书写格式: /* * * XXX */ 参数说明: see 生成文档中的“参见 xx 的条目”的超链接,后边可以加上:“类名”、“完整类名”、“完整类名#方法”。可用于:类、方法、变量注释。 param 参数
2、的说明。可用于:方法注释。 return 返回值的说明。可用于:方法注释。 exception 可能抛出异常的说明。可用于:方法注释。 version 版本信息。可用于:类注释。 author 作者名。可用于:类注释。 deprecated 对类或方法的说明 该类或方法不建议使用,引起不推荐使用的警告 note 表示注解,暴露给源码阅读者的文档 remark 表示评论,暴露给客户程序员的文档 since 表示从那个版本起开始有了这个函数 see 表示交叉参考 javadoc 命令: javadoc options packagenames sourcefiles -public 仅显示 pub
3、lic 类和成员 -protected 显示 protected/public 类和成员 (缺省) -package 显示 package/protected/public 类和成员 -private 显示所有类和成员 -d 输出文件的目标目录 -version 包含 version 段 -author 包含 author 段 -splitindex 将索引分为每个字母对应一个文件 interface 它用于定义新的注释类型(annotation type)。新建一个注释类型看起来和定义一 Interface 没有什么两样, MyTag.java 用于新建一个用户自定义标签,代码如下, = p
4、ackage tiger.annotation; /* * 用户自定义标签?MyTag */ public interface MyTag 定义了一个 tag 之后,我们就可以在任何 java 文件中使用这个 tag 了, import tiger.annotation.MyTag; public class TagTest MyTag public void testTag() = 注释类型还可以有成员变量, = package tiger.annotation; /* * 用户自定义标签?带有成员变量的 MyTag */ public interface MyTag String name
5、(); int age(); = 然后我们可以这么使用这个标签, MyTag(name=“MyTag“,age=1) public void testTag() 使用标签最终是为了帮助开发人员提取注释信息,然后根据不同需求做进一步处理,下面我们来看看如何获取注释信息。 = import java.lang.annotation.Annotation; import tiger.annotation.MyTag; public class TagTest MyTag(name=“MyTag“,age=1) public void test() public static void main(St
6、ring args) TagTest tt = new TagTest(); try Annotation annotation =tt.getClass().getMethod(“test“).getAnnotations(); for (Annotation tag :annotation) System.out.println(“Tag is:“ + tag); System.out.println(“tag.name()“ + (MyTag)tag).name(); System.out.println(“tag.age()“ + (MyTag)(tag).age(); catch(N
7、oSuchMethodException e) e.printStackTrace(); = 需要注意的一点是,在执行这段代码之前我们还有一点小工作要做,还需要给我们的自定义标签 MyTag 加上一个说明标签, Retention, 表明注释信息将可以在运行时刻通过反射机制得到。如果不加入这个标签,上面的代码将没有任何输出。修改以后的 MyTag 如下, = /* * 用户自定义标签?带有成员变量的 MyTag */ Retention(RetentionPolicy.RUNTIME) public interface MyTag String name(); int age(); = 然后我们执行 TagTest 可以得到输出如下, Tag is:tiger.annotation.MyTag(name=MyTag, age=1) tag.name()MyTag tag.age()1 好了,Tiger 新的注释语法基本用法就这么简单,基本用法虽然简单,但是获取注释信息之后如何处理确很值得推敲,我们可以用他们来做一些语法检查,文件相关性检查,进行各种统计等等