自定义注解
什么是注解
注解(Annotation),就是代码中的特殊标记,这些标记可以标记在类、方法、属性上边,可以在编译、类加载、运行时读取注解,从而做相对应的处理。
注解的作用
java内置的注解
Java 带有三个内置注解,可以直接被编译器处理,用于为 Java 编译器提供指令。这些注解是:
@Override:用于标注方法,它说明了被标注的方法重载了父类的方法,起到了断言的作用。如果我们在一个没有覆盖父类方法的方法上应用 @Override 注解时,Java编译器会告警。
@Deprecated:用于将类、方法或字段标记为已弃用,这意味着不推荐再使用它。如果你的代码使用了不推荐使用的类、方法或字段,编译器在编译时会产生一条 Warning 级别的告警。
@SupressWarning:用于关闭对类、方法、成员编译时产生的特定警告。
元注解
元注解一般用于指定注解的生命周期以及作用目标等信息。 Java 中有以下几个元注解:
@Retention:注解的生命周期或者叫保留策略
@Target:注解的作用目标
@Inherited:是否允许子类继承该注解
@Documented:注解是否应当被包含在 JavaDoc 文档中
保留策略
RetentionPolicy.RUNTIME 表示注解永久保存,在运行时可以通过反射获取。 RetentionPolicy.CLASS 表示注解存储在 .class 文件中,在类加载阶段被丢弃,运行时不可用。 RetentionPolicy.SOURCE 表示注解仅在源代码中可用,在 .class 文件和运行时中不可用。
自定义注解
@Target({ElementType.METHOD, ElementType.FIELD})//标记该注解可用范围,类、方法、属性等
@Retention(RetentionPolicy.RUNTIME)//标识当前注解在运行时可以被反射机制获取
//注解通过 @interface 标识
public @interface MyClass {
//设置了default值,该属性则为选填项,使用注解时可以不为该属性赋值
String key() default "";
//未设置了default值,该属性则为必填项,使用注解时必须为该属性赋值
String value();
}

浙公网安备 33010602011771号