Java反射原理
·
一、前言:为什么要学反射,反射有什么用处?
反射允许对成员变量、成员方法和构造方法的信息进行编程访问。可以把类比作一间房子,平时写代码调用方法需要提前知道房子在哪、门在哪,直接走过去开门进屋。而反射只需要拿着一张“地址纸条”,不需要事先知道,全靠中途查找。
假如你是物业总管,小区有上百间房子,不需要挨个写死“进哪间房”,只需要留一张纸条,写好房间名。程序运行的时候,靠反射自动找房间、干活。
二、获取Class对象的三种方式
首先,先准备一个Students实体类,包含私有属性、公有/私有构造、公有/私有方法,覆盖反射常用场景。

接下来,创建一个反射测试类,依次演示获取Class对象的三种方式。

以上三种方式获取的Class对象是一致的,无论是获取构造方法还是成员变量,第一步首先是获取Class对象。
三、利用反射获取构造方法
获取各种构造方法及其形参:

运行结果如下:

四、利用反射获取成员变量
获取成员变量:

运行结果如下:

五、利用反射获取成员方法
获取成员方法:

运行结果如下:

六、结语
反射是Java的底层核心技术,虽然代码不直接常用,却是主流框架(如Spring、MyBatis)、通用工具类(如对象拷贝、JSON序列化)、动态代理等功能的核心,所以还是非常有必要掌握的哦!!!
更多推荐



所有评论(0)