Java的反射机制
- 反射是框架设计核心,反射的基本概念:将类的各个部分封装成对象,从而在程序运行时操作这些对象,便于程序解耦和扩展;
- 在java中运用反射的原理需要下面三个部分:
- 定义一个class对象在java文件中并通过javac命令编译成.class文件(字节码文件)
- 通过ClassLoader进行字节码文件的加载,封装成Class类对象的各个功能方法,以便调用;
- Class类对象是用来描述加载的字节码文件的信息,主要包括类的成员变量、类的构造方法、类的成员方法等等信息,且单个字节码文件只会被加载一次;
- 具体反射的实现如下所示:
- 上面的不同阶段可以对应不同的获取Class对象的方式:
1.Class.forName(“全类名”):将字节码文件加载进内存,返回Class对象,常用于在配置文件中的类信息加载;
2.类名.class:通过类名的属性class获取
3.对象.getClass()