注解:
对Java中类、方法、成员变量做标记,然后进行特殊处理。
自定义注解:
特别:
- value属性,如果只有一个value属性的情况下,使用value属性的时候可以省略value名称不写。
- 但是如果有多个属性, 且多个属性没有默认值,那么value名称是不能省略的。
元注解:
注解注解的注解
元注解有两个:
@Target: 约束自定义注解只能在哪些地方使用,常用值如下
- TYPE,类,接口
- FIELD, 成员变量
- METHOD, 成员方法
- PARAMETER, 方法参数
- CONSTRUCTOR, 构造器
- LOCAL_VARIABLE, 局部变量
@ Retention:申明注解的生命周期,常用值如下
- SOURCE: 注解只作用在源码阶段,生成的字节码文件中不存在
- CLASS: 注解作用在源码阶段,字节码文件阶段,运行阶段不存在,默认值.
- RUNTIME:注解作用在源码阶段,字节码文件阶段,运行阶段(开发常用)
eg. 规定了注解只能用在方法中
注解解析
- Annotation: 注解的顶级接口,注解都是Annotation类型的对象
- AnnotatedElement:该接口定义了与注解解析相关的解析方法
- 所有的类成分Class, Method , Field , Constructor,都实现了AnnotatedElement接口他们都拥有解析注解的能力