JDK 5 提供的注解:Target、Inherited和Documented的区别
JDK5提供的注解,除了Retention以外,还有另外三个,即Target、Inherited和Documented。
Target目标即Target注解用在哪里,定义了注解使用的时机,即注解所适用的程序元素的种类。如果注解类型声明中不存在Target元注解,则声明的类型可以用在任一程序元素上。如果存在这样的元注解,则编译器强制实施指定的使用限制。
Target定义如下:
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public@interfaceTarget{
ElementType[]value();
}
可以看到,Target只有一个value属性,类型为枚举类型ElementType。ElementType声明如下:
publicenumElementType{
/**注解可以用在类、接口(包括注解类型)或枚举声明*/
TYPE,
/**字段声明(包括枚举常量)*/
FIELD,
/**方法声明*/
METHOD,
/**参数声明*/
PARAMETER,
/**构造方法声明*/
CONSTRUCTOR,
/**局部变量声明*/
LOCAL_VARIABLE,
/**注解类型声明*/
ANNOTATION_TYPE,
/**包声明*/
PACKAGE
}
Documented注解表明制作javadoc时,是否将注解信息加入文档。如果注解在声明时使用了@Documented,则在制作javadoc时注解信息会加入javadoc。注解声明如下:
@Documented
@Retention(value=RUNTIME)
@Target(value=ANNOTATION_TYPE)//说明该注解只能在声明注解时使用,即元注解
public@interfaceDocumented{}
Inherited注解同样是元注解,声明如下:
@Documented
@Retention(value=RUNTIME)
@Target(value=ANNOTATION_TYPE)
public@interfaceInherited{}
Inherited注解表明注解是否会被子类继承,缺省情况是不继承的。当注解在声明时,使用了@Inherited注解,则该注解会被使用了该注解的类的子类所继承。
热门推荐
10 五一公司放假祝福语简短
11 追星女孩的祝福语简短
12 给长辈端午祝福语 简短
13 生日祝福语有诗意简短
14 团圆日祝福语简短
15 中秋商务祝福语简短最新
16 温暖文艺简短祝福语短句
17 男孩上学祝福语简短的
18 入住酒店文案祝福语简短