@retention注解作用
时间: 2023-12-05 12:21:23 浏览: 104
@Retention注解用于指定被注解的代码元素(如类、方法、变量等)的生命周期,即该注解所修饰的代码在运行时的保留策略。它有一个参数value,是一个枚举类型,包含三个值:
1. RetentionPolicy.SOURCE:被注解的代码元素仅存在于源代码中,编译后不存在;
2. RetentionPolicy.CLASS:被注解的代码元素存在于字节码文件中,但在运行时不会被保留;
3. RetentionPolicy.RUNTIME:被注解的代码元素存在于字节码文件中,并在运行时保留,可以通过反射机制获取。
通常情况下,我们使用@Retention(RetentionPolicy.RUNTIME)来标识自定义注解,使其在运行时保留,可以在程序运行时通过反射机制进行访问。
相关问题
@Retention注解的作用
@Retention注解用于指定被标记的注解的生命周期,即声明注解的保留期限,它有一个ElementType参数,指定该注解可以用于哪些元素上,例如类、方法、字段等。Retention注解有三个取值:
- RetentionPolicy.SOURCE:表示该注解只在源代码中存在,编译时会被忽略。
- RetentionPolicy.CLASS:表示该注解在编译时存在,但是运行时会被忽略。
- RetentionPolicy.RUNTIME:表示该注解在运行时存在,可以通过反射获取。
通常情况下,我们使用的注解都是RetentionPolicy.RUNTIME类型的,因为这样才能在运行时获取到注解信息,例如Spring框架中的@Controller、@Service、@Autowired等注解。
@Retention注解
@Retention注解是Java语言中的一个元注解,用于指定被注解的注解的生命周期。它有三个取值:RetentionPolicy.SOURCE、RetentionPolicy.CLASS、RetentionPolicy.RUNTIME。其中,RetentionPolicy.SOURCE表示被注解的注解只在源代码中存在,编译后被丢弃;RetentionPolicy.CLASS表示被注解的注解在编译后存在,但在运行时被丢弃;RetentionPolicy.RUNTIME表示被注解的注解在运行时存在,可以通过反射获取。
阅读全文