1. 注解入门
1.1 Annotation
- 位于源码中(代码/注释/注解),使用其他工具进行处理的标签
- 注解用来修饰程序的元素,但不会对被修饰的对象有直接的影响
- 只有通过某种配套的工具才会对注解信息进行访问和处理
- 主要用途
- 提供信息给编译器/IDE工具
- 可用于其他工具来产生额外的代码/配置文件等
- 有一些注解可在程序运行时访问,增加程序的动态性
1.2 JDK预定义的普通注释(部分)
- @Override 表示继承和改写
- @Deprecated 表示废弃
- @SuppressWarnings 表示压制告警
- @SafeVarags 不会对不定项参数做危险操作
- @FunctionInterface 声明功能性接口
1.3 JDK预定义的元注解(部分)
元注解:修饰注解的注解
- @Target 设置目标范围
- @Retention 设置保持性
- RetentionPolicy.SOURCE 注解仅存在源码,不在class文件
- RetentionPolicy.CLASS 默认的注解保留策略,注解存在于class文件,但是不能被JVM加载
- RetentionPolicy.RUNTIME 注解可以被JVM运行时访问到,通常情况下,可以结合反射来做一些事情
- @Documented 文档 (指明这个注解可以被Javadoc工具解析,形成帮助文档)
- @Inherited 注解继承 (让一个类和它的子类都包含某个注解,普通的注解没有继承功能)
- @Repeatable 此注解可以重复修饰
1.4 自定义注解
- 注解可以包括的类型
- 8种基本类型(int/short/long/float/double/byte/char/boolean)
- String
- Class
- enum类型
- 注解类型
- 由前面类别组成的数组
- 自定义注解
- 扩展于java.lang.annotaion.Annotation
- 成员可以包括多种类型
- 使用时可以给注解成员赋值
- 用于修饰多种程序元素