在Eclipse 3.1中体验J2SE 5.0的新特性 第二部分 :注释类型 - 编程入门网
:2011-04-02 IBM 邹青 吴嫣 吴疆
2.2.3 注释的注释 值得注意的是,J2SE5.0还提供了四种用于注释的注释类型。有以下的四种: 1. Target:用来指定这个注释(Annotation)是为哪种类型而定义的。比如,这个类 型可能只是为method定义的。比如override,不能用@override来修饰class或者field。 比如清单11中定义了一个注释:TODO,而这个注释定义了Target为 ElementType.method。因此,TODO只能用来修饰方法,不能用来修饰类或者类变量。图5 中给出了一个非法使用TODO的例子。在MyCalculator中,定义了一个布尔型的变量 isReady,如果用TODO来修饰这个类变量的话,会出现编译错误。而用TODO来修饰方法 calculateRate(),则不会出现编译错误。这是因为TODO的定义已经规定了,只能用来修 饰方法。 清单11 Target的用法
图5 TODO注释的非法使用 2.Retention:Retention的策略可以从以下三种中选取: RetentionPolicy.SOURCE:编译器编译之后会会从class file中除去注释 (Annotation)。 Retention.CLASS:注释(Annotation)保留在class file中,但是VM不会处理。 RetentionPolicy.RUNTIME,:注释(Annotation)保留在class file,VM会进行处理。 请注意,如果你希望在运行时查找到这些注释在什么地方被用到,一定要在定义注释 的时候,选择RetentionPolicy.RUNTIME,否则即使你用注释修饰了类变量或者方法,在运 行时也没有办法获得这个信息的。 3.Documented:这个注释(Annotation)将作为public API的一部分。 4.Inherited : 假设注释(Annotation)定义的时候使用了Inherited,那么如果这个 注释(Annotation)修饰某个class,这个类的子类也被这个注释(Annotation)所修饰 。 2.3注释的应用 下面各小节显示了在哪些情况下可以使用注释以及如何使用注释。 在Eclipse 3.1中体验J2SE 5.0的新特性 第二部分 :注释类型(5)时间:2011-04-02 IBM 邹青 吴嫣 吴疆2.3.1动态查找注释 当我们定义好了注释以后,我们可以开发一些分析工具来解释这些注释。这里通常要 用到Java的反射特性。比如说我们希望找到某个对象/方法/域使用了哪些注释,或者获得 某个特定的注释,或者判断是否使用某个特定的注释, 我们可以参考下面这个例子。这个 例子中定义了两个注释:TODO和TOFORMATE。在MyCalculator类中,TODO用来修饰方法 calculateRate,而TOFORMATE用来修饰类变量concurrency和debitDate。而在类 TestCalculator的main函数中,通过Java反射特性,我们查找到使用这些注释的类变量和 方法。清单12-清单15分别显示这些类的定义。 清单12 TODO注释的定义
清单13 TOFORMATE的定义
清单14 使用注释的类MyCalculator
清单15动态查找注释
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |