Source-->源码阶段Apt技术,场景1,代码合规性检查@UNNULL,2注入类似代码省略findviewByid等操作
Class-->编译阶段,注入一些辅助类,比如:日志,探针,辅助性,没必要动用反射,造成内存浪费,
或者是对项目中使用到的jar,拿不到源码情况下之能对.class进行处理
Runtime-->运行时,可以借助反射做一些业务相关,如:Retrofit等对源码的切面编程
元注解是基本注解,是注解的注解,源码提供的 元注解有5种: @Retention,@Documented,@Target,@Inherited,@Repeatable
@Retention
是保留期的意思;当应用到其他注解上的时候,说明这个注解的存活时间. 取值如下:
RetentionPolicy.SOURCE 注解只有在源码阶段保留,在编译器进行编译时将被丢弃忽视 RetentionPolicy.CLASS 注解只被保留到编译进行的时候,不会被加载到JVM中 * RetentionPolicy.RUNTIME 注解可以保留到程序运行的时期,会被加载到JVM中,程序运行时可