给我举个RetentionPolicy.CLASS的例子
时间: 2024-01-09 14:33:14 浏览: 40
当我们使用 `@Retention(RetentionPolicy.CLASS)` 来指定注解的保留策略为 `CLASS` 时,这个注解将在编译后的字节码中保留,但在运行时不可见。
一个常见的例子是使用自定义注解来标记某个类或方法,以便在运行时进行特定的处理。假设我们有一个自定义注解 `@CustomAnnotation`,用于标记某个方法。在编译后的字节码中,我们可以通过反射来获取这个注解,并根据注解的信息执行相应的逻辑。
```java
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.CLASS)
public @interface CustomAnnotation {
String value();
}
```
```java
public class Example {
@CustomAnnotation("Some value")
public void doSomething() {
// 执行一些操作
}
}
```
在上面的例子中,`@CustomAnnotation` 注解被应用在 `doSomething()` 方法上,并指定了一个值。在编译后的字节码中,这个注解会被保留。然后,在运行时,我们可以使用反射机制来获取这个注解并读取它的值。
请注意,在使用 `@Retention(RetentionPolicy.CLASS)` 时,注解在运行时是不可见的。只有在编译后的字节码中才能访问到它。因此,在运行时无法直接通过注解来执行特定的逻辑,而是需要通过反射等方式来读取注解的信息并进行处理。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)