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