java注解浅解析

前置

java中的注解底层仍然是接口且默认继承了Annotation接口

但它和接口不同的是,我们可以给注解里的方法赋值

以下代码经常能够遇到

public @interface MyAnnotation{
    String value();
}
@MyAnnotation(value="xxxx")
puiblic class Example{
    
}

我们可以观察到我们在给注解的方法赋值,看起来就很神奇。

自定义注解使用流程

定义注解-使用注解-反射读取注解

定义注解

@Retention(注解的保留策略)

因为我们需要反射读取注解,而注解本身具有一个保留策略,这个保留策略是通过元注解(元数据)来实现的,也就是我们经常能够在自定义注解中能够看到的@Retention元注解,其中保留策略分为三种:

  1. SOURCE(只保留到源代码层,意味着当我们是这个保留策略时,无法通过反射读取注解,一般不会使用)
  2. CLASS(保留到字节码,可以通过反射获取,但因为是保留在了字节码中,也就是运行时不会被jvm加载,也就是说如果我们希望这个注解在编译阶段工作,就可以定义到这个级别的保留层略)
  3. RUNTIME(运行时,这是我们最常用的注解了,因为我们用注解往往是需要做一些判断和处理,所以我们就需要在运行时获取注解信息,因此这个级别是我们最常用的级别了)

暂时写到这里,后续下周更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值