专栏首页Java技术栈JAVA元注解@interface详解(@Target,@Documented,@Retention,@Inherited)。

JAVA元注解@interface详解(@Target,@Documented,@Retention,@Inherited)。

jdk1.5起开始提供了4个元注解,用来定义自定义注解的注解,它们分别是:

@Target

指定注解使用的目标范围(类、方法、字段等),其参考值见类的定义:java.lang.annotation.ElementType

@Documented

指定被标注的注解会包含在javadoc中。

@Retention

指定注解的生命周期(源码、class文件、运行时),其参考值见类的定义:java.lang.annotation.RetentionPolicy

@Inherited

指定子类可以继承父类的注解,只能是类上的注解,方法和字段的注解不能继承。即如果父类上的注解是@Inherited修饰的就能被子类继承。

jdk1.8又提供了以下两个元注解

@Native

指定字段是一个常量,其值引用native code。

@Repeatable

注解上可以使用重复注解,即可以在一个地方可以重复使用同一个注解,像spring中的包扫描注解就使用了这个。

所有元注解定义在java.lang.annotation包下面

其中Annotation是注解的基本接口,所有的注解都继承这个接口。

看下@Autowired注解的实现

其实就是继承了Annotation接口。

了解了jdk对注解的定义,所以想要自定义一个注解就以@interface开始吧。

本文分享自微信公众号 - Java技术栈(javastack),作者:javastack

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java中的注解到底是如何工作的?

    自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecate...

    Java技术栈
  • Spring 最常用的 7 大类注解,史上最强整理!

    随着技术的更新迭代,Java5.0开始支持注解。而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制sp...

    Java技术栈
  • Java 必须掌握的 12 种 Spring 常用注解!

    @Configuration 声明当前类为配置类,相当于xml形式的Spring配置(类上)

    Java技术栈
  • 自定义注解加AOP怎么玩?

    注解是在JDK1.5之后引入的新特性位于java.lang.annotation,注解其实就是对代码进行一种特殊的标记,这些标记可以在编译,类加载和运行时被读取...

    乱敲代码
  • Java 注解

    注解时在Java5中开始引入的概念。可以将注解想象成标签,给指定的方法、类、变量、参数、包等贴上一个标签。

    烟草的香味
  • Java必知必会之注解

    引子:全中国的Java程序员都知道,现在主流的项目架构都是ssm、ssh、springcloud等,而这些框架都离不开spring,而spring中使用了大量的...

    Java团长
  • 推荐收藏系列:Spring boot 2.x注解Annotation大全

    @component,而其余 @Controller、@Service、@Repository都组合了@component注解,主要为便于使用者Class组件进...

    macrozheng
  • 一篇文章掌握Java注解

    用一个词就可以描述注解,那就是元数据,即一种描述数据的数据。所以,可以说注解就是源代码的元数据。比如,下面这段代码:

    凯哥Java
  • Java中注解学习系列教程-2

    JDK自带的三个注解(@Override(重写、覆盖)、@Deprecated(废弃的,过时的)、@Suppvisewarnings(压缩警告))都是编译期的注...

    凯哥Java
  • Java中的注解到底是如何工作的?

    自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecate...

    Java技术栈

扫码关注云+社区

领取腾讯云代金券