@Retention注解详解

一、介绍:
@Retention是用来修饰注解的,注解的注解,也称为元注解

二、作用:
@Retention修饰注解,用来表示注解的生命周期,生命周期的长短取决于@Retention的属性RetentionPolicy指定的值,例如@Retention(RetentionPolicy.RUNTIME)

取值

描述

作用范围

使用场景

RetentionPolicy.SOURCE

表示注解只保留在源文件,当java文件编译成class文件,就会消失

源文件

只是做一些检查性的操作,,比如 @Override 和 @SuppressWarnings

RetentionPolicy.CLASS

注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期

class文件(默认)

要在编译时进行一些预处理操作,比如生成一些辅助代码(如 ButterKnife)

RetentionPolicy.RUNTIME

注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在

运行时也存在

需要在运行时去动态获取注解信息

上面三种类型生命周期:SOURCE<CLASS<RUNTIME,使用RUNTIME会包含前面两个生命周期

posted @ 2022-06-22 18:11  姚春辉  阅读(731)  评论(0编辑  收藏  举报