什么是反射?
JAVA反射机制是在运行状态中,创建任意一个类,能获取这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
实现反射机制需要得到Class对象,每个类在编译时会生成对应字节码的Class,Class类用于表示.class文件
如何获得Class对象:
1.Class.forName(),通过类的完全限定名Class对象
2.类名.class,通过类名的class属性获取class对象
3.对象.getClass(),通过对象的getClass()方法获取Class对象。
反射的主要用途:
1.动态加载类、创建对象
2.调用方法
3.访问成员变量
4.运行时类型信息
Java如何实现反射:
在JDK中,主要由以下类来实现Java反射机制:
反射使用场景举例:
1.使用JDBC连接数据库时,使用Class.forName(),通过反射动态加载数据库驱动类。
2.Spring框架的IOC创建对象以及AOP动态代理都使用反射进行底层实现。
3.MyBatis框架通过反射实现Mapper接口代理对象的创建。