1. 注解上的注解称为元注解
2. 常用的元注解有两个:①@Target() ②@Retention()
@Target:定义当前注解能够修饰程序中的哪些元素
@Retention:定义注解的声明周期
@Target({ElementType.TYPE,ElementType.FIELD,ElementType.METHOD,ElementType.PARAMETER}) ElementType有: 1.CONSTRUCTOR:用于描述构造器 2.FIELD:用于描述域 3.LOCAL_VARIABLE:用于描述局部变量 4.METHOD:用于描述方法 5.PACKAGE:用于描述包 6.PARAMETER:用于描述参数 @Retention(RetentionPolicy.RUNTIME) RetentionPolicy有: 1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃; 2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期; 3、RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在;
3.
@Target({ElementType.TYPE,ElementType.FIELD,ElementType.METHOD,ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME) public @interface AnnotationTest { String value(); }
String value是它的属性,但是这个属性是要带()的,意思是加注解的时候我们写的值