【注解】@Retention 元注解

@Retention 是Java中的元注解之一,用于指定注解的保留策略。元注解是用于注解其他注解的注解,@Retention 的目的是告诉编译器如何处理注解。

@Retention 有三个取值,分别是 RetentionPolicy.SOURCERetentionPolicy.CLASSRetentionPolicy.RUNTIME

RetentionPolicy.SOURCE

  • 注解仅在源代码级别保留,在编译时会被丢弃。这意味着在编译后的类文件(.class 文件)中不会包含该注解信息。这种保留策略通常用于编写编译时的工具。
    @Retention(RetentionPolicy.SOURCE) 
    public @interface MyAnnotation {
           // annotation details 
    }
    

RetentionPolicy.CLASS

  • 注解在编译时保留,会被包含在编译后的类文件中,但在运行时会被丢弃。这是默认的保留策略。
    @Retention(RetentionPolicy.CLASS) 
    public @interface MyAnnotation {
           // annotation details 
    }
    

RetentionPolicy.RUNTIME

  • 注解在编译时和运行时都保留,因此可以通过反射在运行时获取注解的信息。这种保留策略通常用于自定义注解,需要在运行时处理

    @Retention(RetentionPolicy.RUNTIME) 
    public @interface MyAnnotation {
           // annotation details 
    }
    

    在自定义注解时,通常会选择 RetentionPolicy.RUNTIME,以便在运行时能够通过反射获取注解信息。例如:

    @Retention(RetentionPolicy.RUNTIME) 
    public @interface RpcApiEntry {
           // annotation details
    }
    

在处理自定义注解时,要根据具体的需求选择合适的保留策略。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值