自定义注解
Demo
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface FruitName {
String value() default "";
}
定义注解格式
public @interface 注解名 {定义体}
- 使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口
- 自定义注解中的每一个方法实际上是声明了一个配置参数,方法的名称就是参数的名称,返回值类型就参数类型
元注解
- @Target: 用于描述注解的使用范围,即该注解可以被用在哪些地方
- ElementType.TYPE:类、接口(包括注解类型)、枚举
- ElementType.FIELD:字段、枚举常量
- ElementType.METHOD:方法
- @Retention: 用于描述注解的生命周期
- RetentionPolicy.SOURCE:只在源码中保留,编译后丢弃
- RetentionPolicy.CLASS:编译后保留在 class 文件中,运行时不可见(默认值)
- RetentionPolicy.RUNTIME:运行时保留,可通过反射读取
- @Documented:会被 JavaDoc 文档化
- @Inherited: 当注解标记在class上时,表示该注解会作用在其所有子类上
参考文章
【1】自定义注解

浙公网安备 33010602011771号