Java四大元注解介绍

在这里插入图片描述

Java四大元注解介绍

什么是元注解?

元注解就是注解到注解上的注解。它们被用来提供对其它 annotation类型作说明。

Java5.0定义的元注解: @Retention@Documented@Target@Inherited,这些类型和它们所支持的类在java.lang.annotation包中可以找到。如图所示:

在这里插入图片描述

接下来我们看一下每个元注解的作用和相应分参数的使用说明。

@Documented

在这里插入图片描述

@Documented用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。

@Retention

Retention 的英文意为保留期的意思。当 @Retention 应用到一个注解上的时候,它解释说明了这个注解的的存活时间

在这里插入图片描述

取值有如下三个:

在这里插入图片描述

SOURCE::注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视。

CLASS: 注解只被保留到编译进行的时候,它并不会被加载到 JVM 中。

RUNTIME: 注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到它们。

@Target

Target 是目标的意思,@Target 指定了注解运用的地方。当一个注解被 @Target 注解时,这个注解就被限定了运用的场景

在这里插入图片描述

它有如下取值:

在这里插入图片描述

ANNOTATION_TYPE:可以给一个注解进行注解

CONSTRUCTOR:可以给构造方法进行注解

FIELD:可以给属性进行注解

LOCAL_VARIABLE:可以给局部变量进行注解

METHOD:可以给方法进行注解

PACKAGE:可以给一个包进行注解

PARAMETER:可以给一个方法内的参数进行注解

TYPE:可以给一个类型进行注解,比如类、接口、枚举

@Inherited

Inherited 是继承的意思,但是它并不是说注解本身可以继承,而是说@Inherited注解了其他注解,其他再注解别人,那么如果它的子类没有被任何注解应用的话,那么这个子类就继承了超类的注解。

在这里插入图片描述

@Inherited
@Retention(RetentionPolicy.RUNTIME)
@interface A {}
@A
public class B {}
public class C extends B {}

注解 A被 @Inherited 修饰,之后类 B 被 A 注解,类 C 继承 B,类 C 也拥有 A 这个注解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值