怎么看一个注解都做了什么?

有时候经常遇见自定义注解,怎么看这些注解都做了什么呢?
比如说某一个权限注解,可以看见里面有一对属性方法,但是我怎么找到这个注解的具体实现呢?

不知道怎么看源码是吧~

关于注解,基础的实现方法是新建两个module

  1. 注解声明module,里边全是注解声明,没有具体的处理逻辑
  2. 注解处理器module,引用了注解声明module,主要对声明的注解做扫描及需要的处理

以butterknife为例:

img

注解这东西不包含任何逻辑,他只是起一个标记注释的作用,实际的逻辑是通过扫描实例是否有对应注解,然后根据扫描结果去写相应的逻辑完成的完成的,所以如果你要看注解的处理逻辑在那里,可以去找哪个逻辑类去尝试获取实例上面的目标注解,相关的逻辑也就在那里了。

百度一下@xxx 注解的原理,别人会给你详细介绍源码中怎样让它生效的