Java元注解

  • 在学习java相关的框架时,经常看到框架开发者的自定义注解,于是查询了解了一下注解,于是写篇博客记录有关元注解的知识简单总结一下。
java注解简介
  • Java注解(Annotation)又称为标注,是JDK5.0引入的一种机制;Java中的类、方法、变量、参数、包都可以被标注。

  • Java注解大致可以分为三类:元注解,基本内置注解,自定义注解

  • 元注解,即JDK中自带,用来标注(注解)其他注解的注解。一般常用于标注自定义注解。

元注解
  • JDK5.0+定义了4个标准的元注解:@Target、@Retention、@Documented、@Inherited

  • @Target

    • 作用:用于标注注解,规定被标注注解所修饰的Java元素类型。通俗讲,就是被标注的注解可以用在什么地方,比如类、方法、属性
    • 属性(value)可以取值ElementType.xxx(xxx为下列枚举变量):
      1. CONSTRUCTOR : 用于描述构造器
      2. FIELD : 用于描述域(成员变量、枚举常量)
      3. LOCAL_VARIABLE : 用于描述局部变量
      4. METHOD : 用于描述方法
      5. PACKAGE : 用于描述包
      6. PARAMETER : 用于描述参数
      7. ANNOTATION_TYPE : 用于描述 注解类
      8. TYPE : 用于描述类、接口或enum声明(枚举类)
      9. TYPE_PARAMETER : 类型参数,JDK 1.8 新增
      10. TYPE_USE : 使用类型的任何地方,JDK 1.8 新增
    • 注意:如果一个注解没有被@Target标注,则此注解可以用于除了TYPE_PARAMETER和TYPE_USE以外的任何地方。
  • @Retention

    • 作用:用于标注注解,使被标注的注解在注释说明保留。通俗讲,就是被标注的注解在具体使用时可以保留到什么时候
    • 属性(value)可以取值RetentionPoicy.xxx(xxx为下列枚举常量):
      1. SOURCE —— 这种类型的Annotations只在源代码级别保留,编译时就会被忽略
      2. CLASS —— 这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略
      3. RUNTIME —— 这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用
  • @Documented

    • 作用:用于标注注解,Javadoc工具会将此注解标记元素的注解信息包含在javadoc中。默认情况注解信息不会包含在Javadoc中。该注解没有成员
  • @Inherited

    • 作用:用于标注注解,被标注的注解在使用时修饰的类,它的子类会继承父类的该注解
    • 注意:类并不从它所实现的接口继承被Inherited标注的注解,对于方法同理。
  • 参考文章/博客:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值