使用:通过反射获取注解【类型和值】,然后进行类型比较,不同类型进行不同的逻辑处理
元注解是可以注解到注解上的注解,或者说元注解是一种基本注解,但是它能够应用到其它的注解上面。它的作用和目的就是给其他普通的标签进行解释说明的。
五个基础元注解: | ||||
@Target | @Retention | @Documented | @Inherited | @Repeatable |
功能:用于描述注解的适用场景
ElementType类型取值如下: | |
ElementType.TYPE | 可以修饰类、接口(包括注解类型)和枚举 |
ElementType.FIELD | 可以修饰字段、枚举常量 |
ElementType.METHOD | 修饰方法 |
ElementType.PARAMETER | 修饰参数 |
ElementType.CONSTRUCTOR | 修饰构造方法 |
ElementType.LOCAL_VARIABLE | 修饰局部变量 |
ElementType.ANNOTATION_TYPE | 修饰注解类型,例如它自己 |
ElementType.PACKAGE | 修饰包 |
ElementType.TYPE_PARAMETER | 修饰类型参数 |
ElementType.TYPE_USE | 修饰任何类型 |
功能:指定被修饰注解的生命周期
RetentionPolicy枚举类的取值: | |
RetentionPolicy.SOURCE | 源码级别保留,编译后即丢弃 |
RetentionPolicy.CLASS | 编译级别保留、编译后的Class文件中存在,在JVM运行时丢弃 |
RetentionPolicy.RUNTIME | 运行级别保留,编译后的Class文件中存在,在JVM运行时保留 |
功能:指明被修饰的注解可以被文档化,只负责标记,无成员变量
功能:允许子类继承父类中的注解
功能:用来标注一个注解在同一个地方可重复使用