注解和反射
- Mybatis和Spring等框架底层就是注解和反射
- 注解:给程序看的 (Annotation)
- 注释:给人看的(Comment)
1.注解
- 什么是注解:对程序做出解释,让程序看的
- 注解作用:
被读取:可以被程序读取(编译器)
检查:检查方法名是否正确
- 注解格式:@注释名,可以添加参数值
镇压警告(一个类中所有的警告都不提示):@SuppressWarnings(value=“all”)
重写(重写父类方法的声明注解):@Override
2.元注解meta-annotation
-
概念:注解其他注解的注解,注解里的注解
-
包括:@Target 、@Retention、 @Decumented、 @Inherited
2.1:@Target:该注解的使用范围,在哪些地方使用
2.2:@Retention:用于描述注解的生命周期(source源代码<class类文件<runtime运行时)
2.3:@Decumented:说明该注解被包含在JavaDoc中
2.4:@Inherited:子类继承父类该注解
3.自定义注解
- 使用@interface,自动继承Annotation接口
- 格式:public @interface 注解名 {定义内容}
- 如果只有一个参数的时候,参数只有value()
4.反射
通俗理解:程序在运行时,对程序进行操作修改
概念:在类加载完成之后,在堆内存的方法区产生一个class对象(一个类只有一个class对象)这个对象包含完整的结构信息,通过这个对象看到类的结构,这个对象就像一面,通过镜子看到类结构,称之为反射