元注解:专门修饰注解的注解
常见的元注解:
- @Retention
- @Target
- @Inherited
- @Documented
- @Repeatable
@Retention:解释说明了注解的存活时间
- RetentionPolicy.SOURCE 只在源代码阶段保留,编译时被丢弃忽略(.java)
- RetentionPolicy.CLASS 只保留到编译进行时,不会加载到JVM中(.class)
- RetentionPolicy.RUNTIME 可以保留到程序运行时,会被加载进JVM中(JVM)
@Target:注解运用的地方
- ElementType.METHOD 给方法注解
- ElementType.TYPE 给类型注解,如类、接口、枚举
- ElementType.ANNOTATION_TYPE 给注解注解
- ElementType.CONSTRUCTOR 给构造方法注解
- ElementType.FIELD 给属性注解
- ElementType.LOCAL_VARIABLE 给局部变量注解
- ElementType.PACKAGE 给包注解
- ElementType.PARAMETER 给方法内的参数注解
@Inherited
- 如果一个超类使用了被 @Inherited 注解过的注解,那么如果它的子类没有应用任何注解,那么这个子类就继承了超类的注解。
@Documented
- @Documented注解标记的元素,Javadoc工具会将此注解标记元素的注解信息包含在javadoc中。默认,注解信息不会包含在Javadoc中。
@Repeatable
- 为了解决注解不能在同一个地方重复使用而出现的。