如何利用java的反射机制动态的取得对象的属性?
来源:互联网 发布:linux下svn服务器搭建 编辑:程序博客网 时间:2024/05/22 07:57
首先我们要先假设我们已经从前面把grid中的store数据项中的字段已经传递到后台中,这个就不用我在这里讲了吧?
前一篇文章我们已经说过这个问题了
这里所说的数据项即为dataIndex的值 ,这也是我们将来要进行反射的时候要用到的字段
先明确一下我们要做什么?
我们现在要做的就是把从数据库中查询出来的东西,我们这里用到的是hibernate,那么也就是说,我们查询出来的是一个一个的对象,然后利用get方法把对应的属性值拿到,再传递到前台的页面中。
那么,我们为什么要用到反射的机制呢?
想一下,如果在数据库中,这个对应的类中,有且不止这些个字段,会出现什么情况?
也就是说,从数据库中查询出的对象,你要把哪些个属性传递到前台?
这里是orgId,orgName……,但数据库中不仅仅是这些个字段,还有其它的字段,那么,我们采用反射的机制把要显示的出来,其它的列信息我们不用去管!!!
关键代码:
//连接数据库把符合条件的数据全部查询出来
List list = this.easySysOrgService.findAll();
Class classType = null; //初始化数据类型
Object invokeTest = null;
for(int i=0; i<list.size(); i++){
EasySysOrg eso = (EasySysOrg)list.get(i); //得到每一个对象
classType = eso.getClass(); //得到数据类型
invokeTest = classType.newInstance();
for(int k=0; k<str.length; k++){ //用前台传递的每一个dataIndex字段去和类的属性比较
String data = str[k]; //得到每一个字段值,如orgId,orgName……
//第一个参数为getXXX datasubString(0,1) 截取第一个字母,如orgId截取o再otUpperCase变成大写
Method method = classType.getMethod("get" + data.substring(0, 1).toUpperCase() + data.substring(1, data.length()), new Class[]{});
Object result = method.invoke(eso, new Object[]{});
System.out.println("method:____" + method);
}
}
运行的结果为:
- 如何利用java的反射机制动态的取得对象的属性?
- 如何在SpringMVC框架中利用Java反射机制和Javassist实现Java对象、属性、注解的动态创建生成
- 利用Java反射机制和Javassist实现Java对象及其属性的动态创建生成
- 利用Java反射机制和Javassist实现Java对象及其属性的动态创建生成
- Java反射机制(取得类的全部的属性)
- Java反射机制(取得类的全部的属性)
- 如何使用反射取得对象的属性值
- 利用java反射机制对比两对象同属性名的属性值
- Java记录 -88- 利用反射机制调用对象的私有方法和属性
- [Java]利用反射机制动态加载并创建包含参数的对象
- Java反射取得一个对象的信息
- java反射机制动态设置类的属性值
- JS如何取得当前对象的属性
- 利用Java反射机制完成XML到对象的解析
- 利用Java反射机制完成XML到对象的解析
- 利用Java反射机制完成XML到对象的解析
- Java反射机制实现对象属性值的拷贝
- 通过java反射机制操作对象的属性方法
- MQ 暂记
- oracle字符集问题
- struts2注解
- POJ 2728 最优比例生成树
- 梦想
- 如何利用java的反射机制动态的取得对象的属性?
- Oracle管理及常用基础脚本
- 关于爱情
- Hibernate3注解
- JUnit写TestCase
- DataGrid导出Excel
- jquery seltip
- 手机CPU之各型号CPU比较
- AC it!