java四种元注解:@Retention @Target @Document @Inherited)

近期在接触公司项目对于新手来说真的难以理解,导师则先叫我先看注解,有遇到@GirdMapping@GirdData等一下没有查出的注解。查看源码才发现是项目新建的注解,查看源码发现有以下四种元注解,写下跟着大家一起学习。

java中元注解有四个: @Retention @Target @Document @Inherited;

   @Retention:注解的保留位置

      @Retention(RetentionPolicy.SOURCE)   //注解仅存在于源码中,在class字节码文件中不包含

      @Retention(RetentionPolicy.CLASS)     // 默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得

      @Retention(RetentionPolicy.RUNTIME) 

 // 注解会在class字节码文件中存在,在运行时可以通过反射获取到。代码用这个注解。

  @Target:注解的作用目标et

target注解可叠加使用例如:@Target({ElementType.TYPE,ElementType.METHOD})

        @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注解标记其他的注解用于指明标记的注解是可以被自动继承的。

 注意:此注解只对注解标记的超类有效,对接口是无效的。

举例:

@Documented

@Retention(RetentionPolicy.RUNTIME)

@Target({ElementType.METHOD})

public @interface GirdData{

}

以上代码定义了@GirdData注解,作用目标是 用于对方法注解,并且保留在运行时的环境中,我们可以利用反射 获得一个方法上的注解  调用定义的方法,

注解是用于建设基础jar包的一部分   项目都有自己的框架,若运用恰当,注解则为其中良好的一部分!转:http://wisfly.iteye.com/blog/2289443

https://www.cnblogs.com/springmorning/p/10268727.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • java自定义注解 Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配...
    尼尔君阅读 558评论 0 0
  • 什么是注解(Annotation):Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和...
    九尾喵的薛定谔阅读 3,407评论 0 2
  • 关于注解首先引入官方文档的一句话:Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代...
    编程小世界阅读 537评论 0 0
  • 注解 创建注解 下面代码创建了一个名为MyAnno的注解,有两个成员str和val。@Retention(…)注解...
    kylinxiang阅读 4,082评论 0 2
  • 雕虫小吏阅读 236评论 0 2

友情链接更多精彩内容