栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDK 5 提供的注解:Target、Inherited和Documented的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JDK 5 提供的注解:Target、Inherited和Documented的区别

JDK 5提供的注解,除了Retention以外,还有另外三个,即Target 、Inherited 和 documented。

Target 目标即Target注解用在哪里, 定义了注解使用的时机,即注解所适用的程序元素的种类。如果注解类型声明中不存在 Target 元注解,则声明的类型可以用在任一程序元素上。如果存在这样的元注解,则编译器强制实施指定的使用限制。

Target 定义如下:

@documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
  ElementType[] value();
}

可以看到,Target 只有一个value属性,类型为枚举类型ElementType。ElementType 声明如下:

public enum ElementType {
  
  TYPE,
  
  FIELD,
  
  METHOD,
  
  PARAMETER,
  
  CONSTRUCTOR,
  
  LOCAL_VARIABLE,
  
  ANNOTATION_TYPE,
  
  PACKAGE
}

documented注解表明制作javadoc时,是否将注解信息加入文档。如果注解在声明时使用了@documented,则在制作javadoc时注解信息会加入javadoc。注解声明如下:

@documented
@Retention(value=RUNTIME)
@Target(value=ANNOTATION_TYPE)//说明该注解只能在声明注解时使用,即元注解
public @interface documented {}

Inherited 注解同样是元注解,声明如下:

@documented
@Retention(value=RUNTIME)
@Target(value=ANNOTATION_TYPE)
public @interface Inherited {}

Inherited 注解表明注解是否会被子类继承,缺省情况是不继承的。当注解在声明时,使用了@Inherited注解,则该注解会被使用了该注解的类的子类所继承。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/150495.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号