beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是c/c++时代不敢想的.无论谁的项目,始终一天都会用得上它.我算是后知后觉了,第一回看到它的时候居然错过.
beanutils还支持list与map类型的属性.如下面的语法即可取得顾客列表中第一个顾客的名字beanutils.getproperty(orderbean, "customers[1].name"); 其中beanutils会使用convertutils类把字符串转为bean属性的真正类型,方便从httpservletrequest等对象中提取bean,或者把bean输出到页面. 而propertyutils就会原色的保留bean原来的类型.2.beancompartor 动态排序 还是通过反射,动态设定bean按照哪个属性来排序,而不再需要在bean的compare接口进行复杂的条件判断. list peoples = ...; // person对象的列表 collections.sort(peoples, new beancomparator("age"));
如果要支持多个属性的复合排序,如"order by lastname,firstname" 【程序编程相关:Eclipse IDE for J2EE】
1.属性的动态getter,setter 在这框架满天飞的年代,不能事事都保证执行getter,setter函数了,有时候属性是要需要根据名字动态取得的,就像这样: beanutils.getproperty(mybean,"code"); 而beanutils更强的功能是直接访问内嵌对象的属性,只要使用点号分隔.beanutils.getproperty(orderbean, "address.city"); 相比之下其他类库的beanutils通常都很简单,不能访问内嵌的对象,所以经常要用commons beanutils替换它们. 【推荐阅读:PEAA : Patterns Of E】
... 下一页