java的元注解

java的元注解:

注解常见的作用有以下几种:

      1.生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等;

      2.跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量;

  • 3.在编译时进行格式检查。如@Override放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出;

包 java.lang.annotation 中包含所有定义自定义注解所需用到的原注解和接口。如接口 java.lang.annotation.Annotation 是所有注解继承的接口,并且是自动继承,不需要定义时指定,类似于所有类都自动继承Object。

该包同时定义了四个元注解,

@Retention(生命范围,源代码,class,runtime)

@Target(作用范围,方法,属性,构造方法等)

@Document

@Inherited;


四个注解详情:

@Retention:注解的保留位置         

    @Retention(RetentionPolicy.SOURCE)  //注解仅存在于源码中,在class字节码文件中不包含
    @Retention(RetentionPolicy.CLASS)     // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得,
    @Retention(RetentionPolicy.RUNTIME)  // 注解会在class字节码文件中存在,在运行时可以通过反射获取到
  
@Target:注解的作用目标
        
   @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) ///   
 
@Document:说明该注解将被包含在javadoc中

@Inherited:说明子类可以继承父类中的该注解

猜你喜欢

转载自blog.csdn.net/qq_27493017/article/details/77430899