Java元注解(Annotation)及注解的解析处理器(AbstractProcessor)

元注解就是注解的注解。

java中的四个元注解:@Retention,@Target,@Documented,@Inherited.

四个元注解的含义:@Retention 注解的保留策略(该注解在代码中的声明周期)。(值为RetentionPolicy的枚举类型:RESOURCE

@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)

java为我们提供的注解处理器的接口就是AbstractProcessor这个抽象类。因此要实现一个注解处理器也很简单,主要分为以下几个步骤:
1.创建一个类,继承AbstractProcessor抽象类。
2.实现其中的方法。
3.注册你的注解处理器



你可能感兴趣的:(java)