概念:
注释: 用文字描述程序的,给程序员看的
注解:说明程序的 给计算机看
编写文档: 可以将代码生成jdk api
代码
JDK的内置注解
@override :检测被注解标注的方法是否继承自父接口
@Deprecated: 该注解标注的内容已过时
@suppressWarings :压制警告 @suppressWarings("all")
自定义注释
元注解
用于描述注解的注解
@target 描述注解能作用的位置
TYPE :可以作用在类上
METHOD:可以作用在方法上
FIELD:可以作用在成员变量上
@Retention 描述注解保留阶段
@Retention(RetentionPolicy.RUNTIME) 当前描述的注解 会保留在自节目文件 并被JVM获取, 一般自己创建的注释都用这个
@Retention(RetentionPolicy.SOURCE)
@Retention(RetentionPolicy.CLASS)
@documented 描述注解是否被抽取到api文档
@Inherited 描述注解是否被子类继承
解析注解
1.获取注解定义的位置的对象 (class method , field)
2.获取指定的注解
getAnnotation(class)
3.调用注解中的抽象方法获取配置的属性值
show方法
注解pro
使用Pro注解
执行 getAnnotation时候相当于 所以可以对象名.函数名直接调用
最后通过反射调用
补充 获取方法的注解 一定要记得给注解定义 retention 且值为runtime 否则运行的时候读取不到
小结
以后大多数时候,我们会使用注解 而不是自定义注解
注解会给谁用
编译器 :@override 编译器判断子类方法与父类方法是否一致
给解析程序 :比如我们要对类的方法进行统一测试 那么解析程序会解析注解进行分析
注解不是程序的一部分 注解相当于标签