注解
注解(Annotation)原程序中的元素关联任何信息和任何元数据(MetaData)的途径和方法。
- Annotation是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理,通过使用Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。
- Annotation可以像修饰符一样,被用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明等,这些信息被保存在Annotation的”name=value”中。
- Annotation能被用来为程序元素如类、方法、成员变量设置元数据。
- 使用Annotation时要在其前面增加@符号,并把该Annotation当成一个修饰符来使用,由于修饰它支持的程序元素。
三个基本Annotation(JDK自带注解)
- @ Override:限定重写父类方法,该注释只能用于方法
- @Deprecated:用于表示某个 程序元素(类、方法等)已过时
- @SuppressWarninngs:抑制编译器警告
常见第三方注解
注解分类
自定义注解
没有成员定义的Annotation称为标记,包含成员变量的Annotation称为元数据Annotation。
元注解
元注解用于修其他注解定义
- @ Retention
- @Target
- @Documented
- @Inherited
@Retention用于指定该注解可以保留多久时间,只能用于修饰一个注解定义,@Retention包含一个RetentionPolicy类型的成员变量,使用@Retention时必须为该value成员变量指定值:
@Target:用于指定被修饰的Annotation能用于修饰哪些因素。@Target也包含一个名为value的成员变量。
@Document:用于指定该元素注解修饰的Annotation类将被javadoc工具提取成文档。定义为Document的注解必须设置Retention值为RUNTIME。
@Iherited:如果某个类使用了被@Iherited修饰的Annotation,则其子类将自动具有该注解