MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

BeanUtils

Posted on 2008-10-31 21:55 leekiang 阅读(1986) 评论(1)  编辑  收藏 所属分类: commons
1, BeanUtils.copyProperties(dest, orig);          这种copy是浅拷贝,复制后的2个Bean的同一个属性可能拥有同一个对象的ref,这个在使用时要小心,特别是对于属性为自定义类的情况.还要属性为集合类的情况。小心hibernate的Set
2,BeanUtils.copyProperties与PropertyUtils.copyProperties的区别
  这两个类几乎有一摸一样的功能,唯一的区别是:BeanUtils在对Bean赋值是会进行类型转化。举例来说也就是在copyProperty时只要属性名相同,就算类型不同,BeanUtils也可以进行copy;而PropertyBean则可能会报错。当然2个Bean之间的同名属性的类型必须是可以转化的,否则用BeanUtils一样会报错。          若实现了org.apache.commons.beanutils.Converter接口则可以自定义类型之间的转化。

BeanUtils外还有一个名为PropertyUtils的工具类,它也提供copyProperties()方法,作用与BeanUtils的同名方法十分相似,主要的区别在于后者提供类型转换功能,即发现两个JavaBean的同名属性为不同类型时,在支持的数据类型范围内进行转换,而前者不支持这个功能,但是速度会更快一些
http://xiaozhao-521.javaeye.com/blog/244254
注意:有人说BeanUtils支持的转换类型不包括java.util.Date?
     我用1.6.1版本试了BeanUtils.copyProperties,肯定是支持java.util.Date的。
3,LazyDynaBean可以实现动态的vo。
  这样,有时候程序给view层的东西就可以用它来封装而不用专门建一个多余的vo类了。


参考:
http://jone0321.blogdriver.com/jone0321/615543.html
http://www.blogjava.net/kenzhh/archive/2008/09/03/226592.html

评论

# re: BeanUtils[未登录]  回复  更多评论   

2009-03-01 13:51 by Fred
举例来说也就是在copyProperty时只要属性名相同,就算类型不同,BeanUtils也可以进行copy、除BeanUtils外还有一个名为PropertyUtils的工具类,它也提供copyProperties()方法,作用与BeanUtils的同名方法十分相似,主要的区别在于后者提供类型转换功能,即发现两个JavaBean的同名属性为不同类型时,在支持的数据类型范围内进行转换,而前者不支持这个功能,但是速度会更快一些。
我感觉你讲的有点不清楚,那到底BeanUtils能不能支持不同类型的转换?是前者好还是后者好些,一般用哪个

只有注册用户登录后才能发表评论。


网站导航: