@Retention的参数
时间: 2024-01-09 10:10:18 浏览: 29
@Retention注释的参数有三种:
1. SOURCE:表示注释只保留在源代码级别,编译器会忽略这些注释,并不包含在编译后生成的class文件中。
2. CLASS:表示注释会保留在编译后生成的class文件中,但在运行时会被JVM忽略。
3. RUNTIME:表示注释会保留在编译后生成的class文件中,并且在运行时也会被JVM保留,可以通过反射机制读取。
相关问题
@retention注解作用
@Retention 注解用于指定被注解的代码元素的生命周期。它具有一个 RetentionPolicy 类型的参数,该参数指定了生命周期的阈值。
@Retention 可以用在注解上,表示该注解在编译期仅存在于源码中,而在运行时不存在。当然,也可以指定为 RUNTIME,表示该注解在运行时依然存在,可以通过反射机制获取到注解的相关信息。
例如,当使用 @Retention(RetentionPolicy.RUNTIME) 注解时,表示该注解会在运行时保留,并可以通过反射机制获取到。而当使用 @Retention(RetentionPolicy.SOURCE) 注解时,表示该注解仅存在于源码中,不会进入到编译后的字节码文件中。
@Retention()
@Retention() 注解用来指定被它所注解的注解保留的时间长度。它有一个参数,取值为 RetentionPolicy 枚举类型中的一个值,如 SOURCE、CLASS、RUNTIME。
- @Retention(RetentionPolicy.SOURCE):表示被注解的注解只保留在源代码中,编译时会被忽略掉。
- @Retention(RetentionPolicy.CLASS):表示被注解的注解会被保留在 class 文件中,但是在运行时会被忽略掉。
- @Retention(RetentionPolicy.RUNTIME):表示被注解的注解会被保留在运行时,可以通过反射等机制读取到。
通常情况下,我们使用的注解都是保留在运行时的,因为只有这样才能在程序运行时通过反射等机制获取到注解信息。