首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问一个给 JavaBean set值的有关问题

2012-12-14 
请教一个给 JavaBean set值的问题?现在有个bean:public class Test{private String aprivate String bpr

请教一个给 JavaBean set值的问题?
现在有个bean:
public class Test{
    private String a;
    private String b;
    private String c;
    private String d;
    ....
}

一些map:
mapA : key = a,value = 1
mapB : key = b,value = 2
mapC : key = c,value = 3

如何按照 map 里的key给Test里的元素赋上对应的值呢?不用循环遍历求思路或者方法。。
(Test里的元素 map里的key 是不一定有的) 
[最优解释]

引用:
基本上就是用反射了。根据Map中的Key,来查找目标对象是否有set方法,然后调用进行赋值。

话说用封装好的组件会更方便些。

封装好的组件可以用apache的commons-beanUtils.jar
BeanUtils.populate(Object o,Map map);把map中的元素填充到bean中
反射的话麻烦点:

     Test t=new Test();
     for(Map.Entry entry:map.entrySet()){
         Method method=Test.class.getMethod("set"+entry.getKey(),String.class);
         method.invoke(t,entry.getValue());
     } 

大致是这样
[其他解释]
基本上就是用反射了。根据Map中的Key,来查找目标对象是否有set方法,然后调用进行赋值。

话说用封装好的组件会更方便些。
[其他解释]
感谢1楼~。想到反射了。。就是反射不太会用。。
求推荐的组件。
[其他解释]
感谢2位问题解决了

热点排行