看了好多反射机制的东西,感觉如果一个类的某些方法被设为私有的时候我们可以使用反射机制去访问。但是为什么jdbc驱动也都是使用反射机制去访问,很费解
2 回答
智慧大石
TA贡献1946条经验 获得超3个赞
一条sql语句查询,得到一条查询结果,例如
select * from user where id = 1;
得到id, userName, email, pwd等字段以及对应的值,但是你的目的不仅仅是得到这些字段,你要将这些字段封装成User对象,便于后续的使用。
如果你只有一个User类你可以写一个util类将这些字段一一赋值给User对象的每个属性,但是你还有Post, Question等实体类,这些怎么办呢?每个都写个util类?对象属性发生变化又得重写?
这时候反射机制就可以实现这个通用的方法,传入查询出的ResultSet以及你要的对象Class,通过反射获取Class中的field list,从ResultSet中获取对应的值,再使用反射调用Class中对应filed的set方法,完成对对象的封装。
添加回答
举报
0/150
提交
取消