Java有五个元注解,自动继承java.lang.annotation.Annotation。
什么是元注解,可以理解为其他普通注解进行解释说明
@Target 该注解的使用范围,限定应用场景。枚举类 ElemenetType 中
@Retention 该注解的生存周期,相当于时间戳。枚举类型 RetentionPolicy 中
@Documented
javadoc文档生成工具的使用
@Inherited
允许子类继承父类中的注解。
@Repeatable
同一种注解可多次使用
定义一个普通的注解,
使用我们自定义的注解
@Target(ElementType.PACKAGE) 注解作用的目标>包
这个注解要理解什么是友好声明类和包常量,包中有很多的内部访问的类或常量,就可以统一的放到友好声明类中,这样就方便,而且集中管理,减少friendly类到处游走的情况。
可以参考这个 https://www.cnblogs.com/DreamDrive/p/5428573.html
@Target(ElementType.CONSTRUCTOR) 注解作用的目标>构造函数
其他范围就不一一列举,都是相同的。
@Retention(RetentionPolicy.RUNTIME) 生存周期
代码运行时动态获取注解的信息
注解的属性-->成员变量
方法名是成员变量的的名字,变量的类型是他的返回值。
既然给了注解,我们要做的工作必然是要提取注解上面的内容,要拿到这些注解就要用到反射。
输出结果
对于类的属性和方法,都是同样的道理。
成员注解
函数注解
Person类
输出
可以看出我们获取了注解上的值,现在都没有实际意义,我们可以用注解来做些什么?
这些我没办法给出确切答案,只能说根据各人需求去合理利用注解。
注解参数赋值
@Test注解
Person类属性赋值
输出
用注解去检查函数等等。。