注解可对类、接口、字段、方法参数、局部变量等进行标记。
元注解是Java API提供的注解,是用来定义注解的注解。元注解可以限制注解标注的位置,生命周期等。
@Target注解指明此注解用在哪个位置,如果不写默认是任何地方都可以使用。
由下图可以看出上面@Target(ElementType.ANNOTATION_TYPE)注解选择了作用在方法上
若要作用在方法上则如@Target(ElementType.METHOD)
@Target注解参数选择枚举类
public enum ElementType {
TYPE,
FIELD,
METHOD,
PARAMETER,
CONSTRUCTOR,
LOCAL_VARIABLE,
ANNOTATION_TYPE,
PACKAGE,
}
@Retention定义注解的生命周期(有效范围)。
由下图可以看出上面@Retention(RetentionPolicy.RUNTIME)注解选择生命周期是存在源码中、编译中、运行中。
public enum RetentionPolicy {
SOURCE,
CLASS,
RUNTIME
}
自己定义一个注解
加入注解参数(可自定义),可以给默认值如下我加了默认值(default)
加入生命周期与作用范围
将自定义注解绑定到属性上,使用默认值或输入值
在这里我通过在annotationInfo()方法中获取注解信息,一般情况下是在拦截器中进行的,并且要注意是通过使用加注解的地方如属性、方法等进行获取注解,我注解加在name属性上所以我通过name来获取注解,否则会出现空指针或获取不到值的情况
了解反射详情:JAVA 反射简单应用_wuyingle1的博客-CSDN博客



