打字猴:1.70045275e+09
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
1700452770 DynaBean user=new LazyDynaBean();
1700452771
1700452772 //直接定义属性和值
1700452773
1700452774 user.set(“name”,“张三”);
1700452775
1700452776 //定义属性名,限定属性类型为Map
1700452777
1700452778 user.set(“phoneNum”,“tel”,“021”);
1700452779
1700452780 user.set(“phoneNum”,“mobile”,“138”);
1700452781
1700452782 //属性类型为ArrayList
1700452783
1700452784 user.set(“address”,0,“上海”);
1700452785
1700452786 user.set(“address”,1,“北京”);
1700452787
1700452788 转换器
1700452789
1700452790 如果我们期望把一个Bean的所有String类型属性在输出之前都加上一个前缀,该如何做呢?一个一个进行属性过滤?或者使用反射来检查属性类型是否是String,然后加上前缀?这样是可以解决,但不优雅,看BeanUtils如何解决:
1700452791
1700452792 //一个简单的Bean对象
1700452793
1700452794 User user=new User(“张三”,18);
1700452795
1700452796 //转换工具
1700452797
1700452798 ConvertUtilsBean cub=new ConvertUtilsBean();
1700452799
[ 上一页 ]  [ :1.70045275e+09 ]  [ 下一页 ]