打字猴:1.70045272e+09
1700452720 (2)BeanUtils
1700452721
1700452722 它是JavaBean的操作工具包,不仅可以实现属性的拷贝、转换等,还可以建立动态的Bean,甚至建立一些自由度非常高的Bean,我们简单地了解一下它的使用方法。
1700452723
1700452724 属性拷贝
1700452725
1700452726 在分层开发时经常会遇到PO(Persistence Object)和VO(Value Object)之间的转换问题,不过,有多种方法可以解决之,比如自己写代码PO.setXXX(VO.getXXX()),但是在属性较多的时候容易出错,最好的办法就是使用BeanUtils来操作,代码如下:
1700452727
1700452728 //PO对象
1700452729
1700452730 User user=new User();
1700452731
1700452732 //VO对象
1700452733
1700452734 Person person=new Person();
1700452735
1700452736 //两个Bean属性拷贝
1700452737
1700452738 PropertyUtils.copyProperties(person, user);
1700452739
1700452740 //把Map中的键值对拷贝到Bean上
1700452741
1700452742 Map<String, String>map=new HashMap<String, String>();
1700452743
1700452744 map.put(“name”,“张三”);
1700452745
1700452746 PropertyUtils.copyProperties(person, map);
1700452747
1700452748 动态Bean和自由Bean
1700452749
1700452750 我们知道定义一个Bean必然会需要一个类,比如User、Person等,而且还必须在编译期定义完毕,生成.class文件,虽然Bean是一个有固定格式的数据载体,严格要求确实没错,但在某些时候这限制了Bean的灵活性,比如要在运行期生成一个动态Bean,或者在需要生成无固定格式的Bean时,使用普通Bean就无法实现了。我们可以使用BeanUtils包解决该问题,示例代码如下:
1700452751
1700452752 //动态Bean,首先定义Bean类
1700452753
1700452754 DynaProperty[]props=new DynaProperty[]{
1700452755
1700452756 new DynaProperty(“name”,String.class),
1700452757
1700452758 new DynaProperty(“age”,int.class)};
1700452759
1700452760 BasicDynaClass dynaClass=new BasicDynaClass(“people”,null, props);
1700452761
1700452762 //动态Bean对象
1700452763
1700452764 DynaBean people=dynaClass.newInstance();
1700452765
1700452766 /*people的get/set操作*/
1700452767
1700452768 //自由Bean
1700452769
[ 上一页 ]  [ :1.70045272e+09 ]  [ 下一页 ]