@Target 描述注解能够作用的位置
ElementType: - type 只能定义在类上 - method:作用这方法上 - field 狂牙作用于成员变量中
Retention:描述注解被保留的阶段
RetentionPolicy - Runtime运行阶段 - Source源码阶段
Documented:描述注解是否被抽取到api文档中
@Inherited:描述注解是否被子类继承
1.属性的返回值类型只能有以下类型:
- 基本数据类型 - String - 枚举 - 注解 - 以上类型的数组
2.定义了以上属性,在使用时需要给属性赋值
1.如果定义属性是,适用Default关键字给属性默认初始化值,则适用注解时,可以省略赋值
2.如果只有一个属性需要赋值,并且属性的名称是value,则属性value狂牙省略,直接定义 值即可。
3.数组赋值时,值适用{}包裹,如果数组只有一个元素时,狂牙省略{}
1.获取注解定义位置的对象
2.获取指定的注解
*.getAnnotation(Class)
3.调用这个注解中的抽象方法来获取配置的属性值
Class.*
注:此处有一个坑,若注解没有定义或定义的保留阶段早于Runtime,则运行时会遇到空指针错误(NullPointException)
这注解上添加元注解(@Retention(RetentionPoily.Runtime)即可解决