如何创建一个自定义注解
@Target 目标(我的理解就是:标明这个注解是干什么的,它要作用在哪些地方,相当于一个声明)
@Retention 保留(我的理解就是;它保留的时间,在什么时候是有效的)
@Target
target中提供了一个ElementType,在里面有我们可供选择的一些参数,这里是我们常用的
- TYPE 作用在类,接口,或者是枚举声明
- FIELD 作用在字段上面
- METHOD 作用在方法上面
- PACKAGE 作用在包上面
- PARAMENTER 作用在参数上面
- ANNOTATION 作用在注解上面
- CONSTRUCTOR 作用在构造方法上面
- TYPE_PARAMENTER 作用在类型参数
- TYPE_USE 作用在类型的引用
@Retention
同样我们的retention中也提供了一个RetentionPolicy
- SOURCE 在源文件加载的时候是有效的,
- RUNTIME 在运行的时候是有效的
- CLASS 在class文件中是有效的
@Documented
我的理解就是:使用了这个注解之后,被修饰的注解就会成为一个公共的api,他会被javadoc记录起来