元注解就是注解的注解。
java中的四个元注解:@Retention,@Target,@Documented,@Inherited.
四个元注解的含义:@Retention 注解的保留策略(该注解在代码中的声明周期)。(值为RetentionPolicy的枚举类型:RESOURCE<CLASS<RUNTIME)
@Target 注解的作用目标(该注解能应用的位置)。( 值为ElementType[ ]数组类型:
@Target(ElementType.TYPE) //接口、类、枚举、注解@Target(ElementType.FIELD) //字段、枚举的常量
@Target(ElementType.METHOD) //方法
@Target(ElementType.PARAMETER) //方法参数
@Target(ElementType.CONSTRUCTOR) //构造函数
@Target(ElementType.LOCAL_VARIABLE)//局部变量
@Target(ElementType.ANNOTATION_TYPE)//注解
@Target(ElementType.PACKAGE) ///包 )
@Documented : 说明注解被包含在javadoc中,javadoc工具本来是不记录注解的。
@Inherited : 子类中可以获取父类的注解信息。
四个元注解的源码如下:
元注解上的注解:
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
四个元注解的使用(自定义一个注解):
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface an1{
public String value() default " ";
}
这样就定义了一个可以放在方法上的an1注解。具体注解怎么去注册,并且去解析结果,根据结果执行的具体处理代码,就是java中注解处理器(AbstractProcessor)的内容了。如果没有注解处理器,那注解就和注释一样了,没啥意义。
注解处理器(AbstractProcessor)
如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
-
点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
-
关注公众号 『逆行的碎石机』,不定期分享原创知识。
-
同时可以期待后续文章ing🚀