自定义注解时,一般使用什么元注解
时间: 2023-12-12 18:02:13 浏览: 32
在自定义注解时,一般需要使用以下元注解来对注解进行描述:
1. @Retention:指定注解的保留策略,有三个取值:RetentionPolicy.SOURCE、RetentionPolicy.CLASS 和 RetentionPolicy.RUNTIME。RetentionPolicy.SOURCE 表示注解只会在源代码中保留,编译时会被忽略;RetentionPolicy.CLASS 表示注解会被编译到 class 文件中,但在运行时会被忽略;RetentionPolicy.RUNTIME 表示注解会在运行时保留,可以通过反射机制获取注解信息。
2. @Target:指定注解可以应用的目标类型,有 ElementType.ANNOTATION_TYPE、ElementType.CONSTRUCTOR、ElementType.FIELD、ElementType.LOCAL_VARIABLE、ElementType.METHOD、ElementType.PACKAGE、ElementType.PARAMETER 和 ElementType.TYPE。
3. @Documented:表示是否将注解信息添加到 Java 文档中。
4. @Inherited:表示注解是否可以继承,默认为不继承。
下面是一个自定义注解的例子,其中使用了以上四个元注解:
```
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Documented
@Inherited
public @interface MyAnnotation {
String value() default "";
}
```
在上面的代码中,我们定义了一个名为 @MyAnnotation 的注解,它可以应用于方法上,并且可以在运行时保留。同时,它将被添加到 Java 文档中,并且可以被继承。注解中只有一个 value 属性,可以用来保存字符串类型的值。