1. JDK预定义注解
(1) @Deprecated(表示标记对象已过时)
(2) @SuppressWarnings("all") (忽略标记对象的警告)
2. 元注解(用于描述注解的注解)
@Target 描述注解所生效的位置
@Retention 描述注解被保留的阶段(生命周期)
@Documented 描述类内的注解(含其他)可被抽取到api文档
@Inherited 描述类内的注解会被子类继承
(1) @Target
只有ElementType的value属性
TYPE:注解作用于类或接口
FIELD:注解作用于成员变量
METHOD:注解作用于方法
CONSTRUCTOR:注解作用于构造器
(2) @Retention
只有RetentionPolicy的value属性
SOURCE:注解存在于代码阶段,源码不存在
CLASS:注解存在于字节码阶段,运行不存在
RUNTIME:注解存在于所有阶段
3. 自定义注解(Annotation)
(1) 自定义注解(新建)
自定义注解本质是,实现(Annotation接口)的接口
(2) 自定义注解(属性)
类型1:基本类型(byte, short, int, long, double, float, boolean, char)
类型2:String
类型3:枚举类
类型4:注解
类型5:上记类型的数组
(3) 使用属性
(4) 属性默认值
指定了默认值的属性,使用时可以不指定初期化值。
(5) 默认属性
如果属性,只有value属性,使用时可以不指定属性名
4. 解析注解
通过反射机制,获取注解的值
(1) 获取对象的注解( getAnnotation(注解.class) 或 getAnnotations() )
(2) 获取对象注解的值
(3) 代码测试
1.定义枚举类
2. 定义注解类
3. 定义使用注解类和方法
4. 反射获取值
5. 执行结果