1.注解概述
注解是一种用来描述代码的标记,这种“描述数据的数据”被称为元数据
- 以前,我们可以使用普通注释或JavaDoc注释来描述代码信息,但注解的 功能要强大得多
- 普通注释提供碎片化的代码信息
- Javadoc注释可以用来生成结构化的文档
- 注解不仅有注释的功能,还提供了自动化处理的能力
注解是一种元数据,是Java 5的核心新特性之一
- 它是程序中不同与代码的一种特殊标记
- 通过注解,可以在不改变原有逻辑的情况下,在源码中嵌入一些补充的信息
2.注解的格式
1.@Override是最简单的注解
- @符号告诉编译器这是一个注解,Override是注解的名称
2. 注解可以包含不同的元素,用键值对的形式来表示
3.如果注解只有一个元素, 那么元素名可以省略
3.Java内建注解
1.简单注解
- 在 java.lang 包下提供了多种简单注解, 其中最常用的有三种:
- @Deprecated 该注解表明所标注的代码是过时的,不应该再使用
- @Override 此注解告诉编译器该方法是对父类方法的重写
- @SuppressWarnings 此注解告诉编译器抑制指定的警告
2.元注解
- 应用在注解上的注解叫做元注解,它们在java.lang.annotation包中,
- Java元注解一共有四种:
- @Retention 用来指定注解的保留时间
- @Documented 表明注解中的元素需要记录在Javadoc文档中
- @Target 表明注解的作用目标
- @Inherited 表明子类可以继承父类中的该注解
4.自定义注解
注解的定义和接口很像,只是在interface前面加了一个@符号 注解定义中包含对注解元素的声明,它们很像是方法,注意可以定义默认值
- 可以将注解看做一种特殊形式的接口
5.读取注解信息
注解不仅仅是一种更强的注释,还能提供自动化处理能力
在编译期间,通过apt等工具,可以对注解进行解析,进行编译器检查,生成新的源代码和其它文件等
- @Retention的值要设定为RetentionPolicy.CLASS
在运行期间,可以通过反射动态读取程序中的注解信息
- @Retention的值要设定为RetentionPolicy.RUNTIME