| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 610 人关注过本帖
标题:一个难题,困绕多时,查了许多资料,觉得好像是用反射机制可以解决,但找到 ...
只看楼主 加入收藏
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
 问题点数:0 回复次数:3 
一个难题,困绕多时,查了许多资料,觉得好像是用反射机制可以解决,但找到的资料全部都正和我要实现的功能相反!求高手指教,跪谢!多年没来这网站了,不知道千年冰峰还在
是这样,目前我需要实现的功能是需要在一个实体类中动态的得到一个JAVABEN,以实现通用性,而我在网上看了很多关于反射机制的资料,都要在实体内中写死JAVABEN的实例名,这样就完全与我的想法相反了,可能文字表达无不法让各位理解,我简短的写几个代码:
例:
class a(){
   String id;
   String name;
   String age;

  // 以下是实现的set和get方法
}
class b(){
 String pID;
 String pName;
 String pAuther;
 
 //以下是实现的set和get方法
}

我有另一个通用类,例如叫class ReadExcel,是作为从Excel里取值,本来程序的完全通用性是想实现我任意的导Excel,根据读取ReadExcel取得的值作为参数传给一个例如叫SetBens的类里去,将ReadExcel中取得的字符串以参数传到SetBens里面解析,然后赋值给相就在的JAVABEN,关键就在这个相应的JAVABEN,假如我导的EXCEL是用户的,那么就应该赋值给class a,如果是导的商品的,就该赋值给class b,目前我就是以参数的形式传给SetBens类,例如代码
class SetBens(String strExcel, Object obj){

}
strExcel是传进来的从EXCEL得到的值以字符串的形式传进来解析
Object是接收以参数传进来的JAVABEN,只有这样才能实现JAVABEN的动态调用
可传进来了,我也能用Class c = obj.getClass();来得到传进来的BEN,但我却没办法去用BEN中的set方法将其赋值,以前一直没研究过反射机制,这几天研究了很久,可网上的资料,几乎都是要在这个类里去声明一个固定的JAVABEN,这样就完全达不到我预期的效果。
请高手指点!~。。。。。。。。。。。。。。。。
若有兄台诚心愿意帮小弟,可加上QQ,觉得评语音交流更容易理解!32676407,验证信息就说是指点反射机制的高手,谢谢!
搜索更多相关主题的帖子: Excel 资料 动态 
2012-11-26 00:18
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:0 
你可以使用getMethod方法反射得到类的方法对象,然后用invoke方法调用进行赋值。
               
    method = cls.getMethod("set" + chgFirst(columnName), paraCls);
    method.invoke(objTemp, paraObj);
2012-11-26 14:38
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
得分:0 
我搞定了,千里冰封帮我看了代码,其实我所有对象和方法都得到了,就是在invoke时,里面的参数没给对,第二个参数应该给需要赋的值,结果我给得方法的集合了,无语,就这一个参数搞得我头都大了!不过还是谢谢各位的点化,呵。。。

2012-11-26 19:43
快速回复:一个难题,困绕多时,查了许多资料,觉得好像是用反射机制可以解决,但 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015906 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved