1、基本介绍
▶ 什么是元注解:
元注解就是解释注解的注解,它注解的对象是我们前面介绍的注解,如:@Override、@Deprecated 、@SuppressWarnings
▶ 四种元注解:
- Retention:指定注解的作用范围,三种 SOURCE,CLASS,RUNTIME
- Target:指定注解可以在哪些地方使用,可以参考下面这些
- Documented :指定该注解是否会在 javadoc 体现
- Inherited:子类会继承父类注解
▶ 注解的注意事项:
- 注解仅存在于源码中,在class字节码文件中不包含
- 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,
- 注解会在class字节码文件中存在,在运行时可以通过反射获取到
- 首先要明确生命周期长度 SOURCE < CLASS < RUNTIME ,前者能作用的地方后者一定也能作用。
①:一般如果需要在 运行时去动态获取注解信息,那只能用 RUNTIME 注解;
②:如果要在 编译时进行一些预处理操作,比如生成一些辅助代码(如 ButterKnife),就用 CLASS注解;
③:如果只是做一些 检查性的操作如 @Override 和 @SuppressWarnings,则可选用 SOURCE 注解。