黑马程序员技术交流社区

标题: BeanUtils和PropertyUtils在设置对象属性时的区别 [打印本页]

作者: 梅雄新    时间: 2012-2-4 14:17
标题: BeanUtils和PropertyUtils在设置对象属性时的区别
BeanUtils和PropertyUtils在设置对象属性时的区别,请懂的朋友帮忙解释下,谢谢
作者: 黄秋    时间: 2012-2-4 16:16
BeanUtils.copyProperties 与 PropertyUtils.copyProperties 都是拷贝对象属性的方法,BeanUtils 支持类型转换,而 PropertyUtils 不支持。 BeanUtils 发现两个JavaBean的同名属性为不同类型时,在支持的数据类型范围内进行转换,而PropertyUtils 不支持这个功能,但是速度会更快一些。
作者: 黄秋    时间: 2012-2-4 16:30
本帖最后由 黄秋 于 2012-2-4 16:43 编辑

LZ问的是设置对象属性,我只说了它们的 copyProperties方法,现补充如下:
    BeanUtils它以字符串的形式对javabean进行转换,而PropertyUtils是以原本的类型对javabean进行操作, 如果类型不对,就会有argument type mismatch异常。 PropertyUtils.getPropety方法获得的属性值的类型为该属性本来的类型,而BeanUtils.getProperty则是将该属性的值转换成字符串后才返回。

补充一点:BeanUtils 不允许对象的属性值为 null (基本类型对应的包装类可),PropertyUtils 可以拷贝属性值 null 的对象。如果对象属性值为 null,BeanUtils.copyProperties 方法会报 commons.beanutils.ConversionException: No value specified 错误;但当Ineger、Boolean、Long等基本类型包装类为null时,会将值复制后转换成0 或 false。
[以上有自己的,也有网上搜来的,有错漏请指正]




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2