自定义注解

什么是注解

注解(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();
}

 

posted @ 2022-12-18 05:02  Amireux-126  阅读(39)  评论(0)    收藏  举报