Java基础@Retention如何创建注解?

admin 百科 14
@Retention是Java中指定注解保留策略的元注解,不创建注解而控制其生命周期:SOURCE(仅源码)、CLASS(默认,.class中但运行时不可见)、RUNTIME(.class中且反射可读)。

Java基础@Retention如何创建注解?-第1张图片-佛山资讯网

@Retention 是 Java 中用来指定注解保留策略的元注解,它**不负责创建注解本身**,而是控制你自定义的注解在什么阶段还“有效”——比如编译期、运行时,还是仅在源码中存在。

先创建一个注解(用 interface + @interface)

Java 注解本质是一个特殊的接口,用 @interface 声明:

public @interface MyLog {
    String value() default "log";
    int level() default 1;
}

登录后复制

这样就定义了一个带两个属性的注解 @MyLog。但此时它默认只保留在源码阶段(RetentionPolicy.SOURCE),运行时 getAnnotation() 拿不到。

用 @Retention 指定注解生命周期

要在运行时通过反射获取该注解,必须显式加上 @Retention(RetentionPolicy.RUNTIME)

立即学习“Java免费学习笔记(深入)”;

@Retention(RetentionPolicy.RUNTIME)
public @interface MyLog {
    String value() default "log";
    int level() default 1;
}

登录后复制

常用保留策略有三个:

标签: java

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~