- 前言
- 代码
- RetentionPolicy
前言
实现自定义注解。
代码@An 注解
package xianzhan.jdk8.annotation;
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 An {
String value() default "";
}
AnClass 类
package xianzhan.jdk8.annotation;
@An("AnClass")
public class AnClass {
}
Main main 方法
package xianzhan.jdk8;
import xianzhan.jdk8.annotation.An;
import xianzhan.jdk8.annotation.AnClass;
public class Main {
public static void main(String[] args) {
An annotation = AnClass.class.getAnnotation(An.class);
System.out.println(annotation);
}
}
这样我们就实现了自定义注解了。
要实现自定义注解,我们主要了解的元注解有两个:
@Target: 表明注解可作用于什么类型,若无则表示全部可用。
@Retention: 表明注解的保存策略。
保存策略有三个:
SOURCE: 源码级别,javac 编译时将抛弃。
CLASS: 类文件级别,javac 将该注解信息保存到 .class 文件,但 JVM 运行时将抛弃。
RUNTIME: 运行时级别,JVM 运行时将该注解信息加载到内存。
在实际开发中,我们一般只使用到 RUNTIME 策略。



