A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 whocases 于 2012-6-28 18:57 编辑

BeanUtils和PropertyUtils在设置对象属性时的区别,请明白的同学给解释下,谢谢了!

4 个回复

正序浏览
主要的区别在于Beanutils提供类型转换功能,即发现两个JavaBean的同名属性为不同类型时,在支持的数据类型范围内进行转换,而PropertyUtils不支持这个功能支持的转换类型常用的有float and java.lang.Float
    * int and java.lang.Integer
    * long and java.lang.Long
    * short and java.lang.Short
    * java.lang.String
回复 使用道具 举报
BeanUtils和PropertyUtils的工具类,都提供copyProperties()方法,PropertyUtils作用与 BeanUtils的同名方法十分相似,主要的区别在于后者提供类型转换功能,即发现两个JavaBean的同名属性为不同类型时,在支持的数据类型范围内进行转换,而前者不支持这个功能,但是速度会更快一些

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 邱国 于 2012-6-25 23:26 编辑

在设置对象属性的时候,

BeanUtils它以字符串的形式对javabean进行转换,

PropertyUtils是以原本的类型对javabean进行操作, 如果类型不对,就会有argument type mismatch异常。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 赞一个!

查看全部评分

回复 使用道具 举报
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。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马