一.注解是说明java程序的,是给计算机看的,是jdk1.5及以后版本引入的新特性。
java的预编译注解有三个,如下:
@Override 检测被该注解标注的方法是否是继承父类(接口)的
@Deprecated 该注解标注的内容,表示已经过时
@SuppressWarnings 压制警告
二.注解的本质就是接口,默认继承java.lang.Annotation(可通过javap命令反编译进行验证)
注解中的抽象方法称为属性,属性的返回值类型是有要求的
1.基本数据类型
2.String
3.枚举
4.注解
5.以上类型的数据
三.定义了属性,在使用时需要给属性赋值
1.如果定义属性时,使用default关键字给属性默认初始化值,则使用注解时,可以不进行属性的赋值。
2.如果只有属性需要赋值,并且属性的名称默认是value,则value可以省略,直接定义即可。
四.元注解(用于描述注解的注解)
@Target 描述注解能够作用的位置
@Retention 描述注解被保留的阶段
@Documented 描述注解是否被抽取到api文档中
@Inherited 描述注解是否被子类继承
@Target 里边只有一个默认的value属性 是枚举类型的
ElementType最常用的三个取值
ElementType.TYPE 作用在类上
ElementType.METHOD 作用在方法上
ElementType.FIELD 作用在属性上
@Retention(RetentionPolicy.RUNTIME) 一般都用这个,当前描述的注解,会保留到class字节码文件中,并被JVM读取
五.在程序中使用(解析)注解:获取注解中定义的属性
1.获取注解定义的位置的对象(Class,Method,Field)
2.获取指定的注解
getAnnotation(Class clz) //其实就是在内存中生成一个该注解接口的子类实现对象去重写了注解里的方法(属性),返回对应的属性值
3.调用注解中的抽象方法获取配置的属性值。