3.Documented:这个注释(Annotation)将作为public API的一部分。
4.Inherited : 假设注释(Annotation)定义的时候使用了Inherited,那么如果这个注释(Annotation)修饰某个class,这个类的子类也被这个注释(Annotation)所修饰。
2.3注释的应用
下面各小节显示了在哪些情况下可以使用注释以及如何使用注释。
2.3.1动态查找注释
当我们定义好了注释以后,我们可以开发一些分析工具来解释这些注释。这里通常要用到Java的反射特性。比如说我们希望找到某个对象/方法/域使用了哪些注释,或者获得某个特定的注释,或者判断是否使用某个特定的注释, 我们可以参考下面这个例子。
这个例子中定义了两个注释:TODO和TOFORMATE。在MyCalculator类中,TODO用来修饰方法calculateRate,而TOFORMATE用来修饰类变量concurrency和debitDate。而在类TestCalculator的main函数中,通过Java反射特性,我们查找到使用这些注释的类变量和方法。清单12-清单15分别显示这些类的定义。
清单12 TODO注释的定义
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface TODO {
int priority() default 0;
}
|
清单13 TOFORMATE的定义
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface TOFORMATE {
}
|
清单14 使用注释的类MyCalculator
public class MyCalculator {
boolean isReady;
@TOFORMATE double concurrency;
@TOFORMATE Date debitDate;
public MyCalculator() {
super();
}
@TODO
public void calculateRate(){
System.out.println("Calculating...");
}
}
|
<<上一页
1
2
3
4
5
6
7
8
9
10
11
12
13
下一页>>
|