当前位置:网站首页 > 技术博客 > 正文

java注解的实现原理



廖雪峰
资深软件开发工程师,业余马拉松选手。

Java语言使用语法来定义注解(),它的格式如下:

注解的参数类似无参数方法,可以用设定一个默认值(强烈推荐)。最常用的参数应当命名为。

有一些注解可以修饰其他注解,这些注解就称为元注解(meta annotation)。Java标准库已经定义了一些元注解,我们只需要使用元注解,通常不需要自己去编写元注解。

@Target

最常用的元注解是。使用可以定义能够被应用于源码的哪些位置:

  • 类或接口:;
  • 字段:;
  • 方法:;
  • 构造方法:;
  • 方法参数:。

例如,定义注解可用在方法上,我们必须添加一个:

定义注解可用在方法或字段上,可以把注解参数变为数组:

实际上定义的是数组,只有一个元素时,可以省略数组的写法。

@Retention

另一个重要的元注解定义了的生命周期:

  • 仅编译期:;
  • 仅class文件:;
  • 运行期:。

如果不存在,则该默认为。因为通常我们自定义的都是,所以,务必要加上这个元注解:

@Repeatable

使用这个元注解可以定义是否可重复。这个注解应用不是特别广泛。

经过修饰后,在某个类型声明处,就可以添加多个注解:

@Inherited

使用定义子类是否可继承父类定义的。仅针对类型的有效,并且仅针对的继承,对的继承无效:

在使用的时候,如果一个类用到了:

则它的子类默认也定义了该注解:

我们总结一下定义的步骤:

第一步,用定义注解:

第二步,添加参数、默认值:

把最常用的参数定义为,推荐所有参数都尽量设置默认值。

第三步,用元注解配置注解:

其中,必须设置和,一般设置为,因为我们自定义的注解通常要求在运行期读取。一般情况下,不必写和。

Java使用定义注解;

可定义多个参数和默认值,核心参数使用名称;

必须设置来指定可以应用的范围;

应当设置便于运行期读取该。

  • 上一篇: i2c 协议
  • 下一篇: 进程和线程对应关系
  • 版权声明


    相关文章:

  • i2c 协议2025-03-26 14:30:01
  • 获得无限空间我直接搬空国库逃亡2025-03-26 14:30:01
  • mysql开源版本2025-03-26 14:30:01
  • html做表单2025-03-26 14:30:01
  • 小程序示例官方源代码2025-03-26 14:30:01
  • 进程和线程对应关系2025-03-26 14:30:01
  • 网络攻防有哪些技术2025-03-26 14:30:01
  • springboot中的yml怎么读取2025-03-26 14:30:01
  • visual快捷输入2025-03-26 14:30:01
  • 火鸟字幕组解压密码2025-03-26 14:30:01