由于BeanUtils 的美名远播,加之学艺不精;项目中想当然直接使用BeanUtils;结果华丽丽的掉进了陷阱;
且看下面场景:
1、待copy类
public class SiteSupplierTrade { private Long longAttr; private String[] StringArrayAttr; private Integer integerAttr; private String StringAttr; //set get }
2、copy类
public class SiteSupplierTradeCopy { private Long longAttr; private String[] StringArrayAttr; private Integer integerAttr; private String StringAttr; // set get }
3、copy
public static void main(String[] args) { SiteSupplierTrade siteSupplierTrade = new SiteSupplierTrade(); if (null != siteSupplierTrade) { SiteSupplierTrade siteSupplierTrade2 = new SiteSupplierTrade(); SiteSupplierTradeCopy SiteSupplierTrade3 = new SiteSupplierTradeCopy(); try { BeanUtils.copyProperties(siteSupplierTrade2, siteSupplierTrade); BeanUtils.copyProperties(SiteSupplierTrade3, siteSupplierTrade); } catch (Exception e) { } System.out.println(siteSupplierTrade2); System.out.println(SiteSupplierTrade3); try { PropertyUtils.copyProperties(siteSupplierTrade2, siteSupplierTrade); PropertyUtils.copyProperties(SiteSupplierTrade3, siteSupplierTrade); } catch (Exception e) { } System.out.println(siteSupplierTrade2); System.out.println(SiteSupplierTrade3); } }
4、结果:
SiteSupplierTrade[longAttr=0,StringArrayAttr={},integerAttr=0,StringAttr=<null>]
SiteSupplierTradeCopy[longAttr=0,StringArrayAttr={},integerAttr=0,StringAttr=<null>]
SiteSupplierTrade[longAttr=<null>,StringArrayAttr=<null>,integerAttr=<null>,StringAttr=<null>]
SiteSupplierTradeCopy[longAttr=<null>,StringArrayAttr=<null>,integerAttr=<null>,StringAttr=<null>]
5、结论:
1)、熟悉BeanUtils PropertyUtils的知道,这两兄弟的区别就是BeanUtils 会做类型转换,PropertyUtils不会,自然前者性能不如后者;
2)、其实还有一个副作用,观察结果标红的部分,发现BeanUtils 会将long、integer 初始化为0,string[]初始化为空数组,而不是copy一个null;
3)、对于依赖为空判断的应用来说就是一个悲剧。
本站支持 pay for your wishes
相关推荐
Apache Commons BeanUtils是Java开发中一个非常重要的工具库,它为开发者提供了大量便捷的JavaBean操作功能。在本文中,我们将深入探讨`commons-beanutils-1.9.4`这个版本,了解其核心功能、使用场景以及如何在项目...
赠送jar包:commons-beanutils-1.9.4.jar; 赠送原API文档:commons-beanutils-1.9.4-javadoc.jar; 赠送源代码:commons-beanutils-1.9.4-sources.jar; 赠送Maven依赖信息文件:commons-beanutils-1.9.4.pom; ...
Apache Commons BeanUtils是Java开发中的一个实用工具库,主要用于处理JavaBeans对象,简化对JavaBean属性的操作。这个库提供了一套方便的API,使得开发者可以通过简单的API调用来获取、设置JavaBean的属性,甚至...
BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。它可以给JavaBean封装一个字符串数据,也可以将一个表单提交的所有数据封装到JavaBean中。使用第三方工具,需要导入jar包:
《Apache Commons BeanUtils 1.8.0:深入解析与应用》 Apache Commons BeanUtils库是Java开发中不可或缺的一部分,尤其对于那些频繁处理JavaBeans属性的开发者来说。它提供了便捷的方式来操作Java对象的属性,极大...
Apache Commons BeanUtils 1.8.3 是一个强大的Java库,专为简化Java Bean操作而设计。这个API提供了大量的实用工具方法,使得开发者能够更加便捷地处理Java对象,特别是那些符合Java Bean规范的对象。在Java编程中,...
BeanUtils是Apache Commons项目中的一个核心库,主要提供了一组工具方法来简化Java Bean的操纵。这个1.8版本的jar包和源码是开发者在处理Java对象属性时的得力助手,尤其对于那些需要频繁进行对象属性设置和获取的...
Apache Commons BeanUtils是Java开发中一个非常实用的工具库,主要功能是简化JavaBean对象的操作。这个"beanutils的jar包"是1.93版本,它包含了对bean操作的各种方法,同时也集成了log包,方便开发者进行日志记录,...
《深入解析Apache Commons BeanUtils源码》 Apache Commons BeanUtils是Java开发中广泛使用的工具库,主要用于处理JavaBean对象的属性操作。这个库的核心功能在于简化了JavaBean对象的属性设置、获取以及复制等操作...
Apache BeanUtils库是Java开发中的一个关键工具,它在标题"beanutils-1.8.3开发包"中被提及,表明这是一个针对该版本的BeanUtils的完整开发资源集合。这个包提供了对JavaBeans属性操作的强大支持,简化了对象属性的...
Apache Commons BeanUtils是Java开发中的一个实用库,它提供了对JavaBeans属性的简便操作。这个库简化了在对象之间复制属性、处理集合以及调用JavaBean方法的过程。在这个"commons-beanutils-1.9.4.jar.zip"压缩包中...
Apache Commons BeanUtils是Java开发中的一个实用工具库,它提供了对JavaBeans进行操作的便捷方法。这个库的主要目的是简化对对象属性的访问,使得开发者能够更高效地处理对象的属性设置和获取,而无需手动编写大量...
Apache Commons BeanUtils是Java开发中一个非常重要的工具库,它为开发者提供了方便的Java Bean操作接口。这个"commons-beanutils-1.8.2-src"官方源文件包,是学习和理解BeanUtils核心功能的宝贵资源。在这个版本中...
《Apache Commons BeanUtils:构建网络框架的利器》 在Java编程领域,Apache Commons BeanUtils库是一个不可或缺的工具,尤其在构建网络框架时更是扮演着重要角色。BeanUtils库是Apache软件基金会开发的一个开源...
《BeanUtils:JavaBean操作利器》 在Java开发中,我们常常需要对JavaBean对象进行各种操作,如属性的设置、获取以及复制等。Apache Commons BeanUtils库正是为了解决这些问题而诞生的,它提供了简单易用的API,极大...
赠送jar包:commons-beanutils-1.9.4.jar; 赠送原API文档:commons-beanutils-1.9.4-javadoc.jar; 赠送源代码:commons-beanutils-1.9.4-sources.jar; 赠送Maven依赖信息文件:commons-beanutils-1.9.4.pom; ...
《BeanUtils-jar包:JavaBean操作的利器》 在Java开发中,BeanUtils-jar包扮演着重要的角色,它是Apache Commons项目中的一个模块,主要为开发者提供了方便、高效的JavaBean操作工具。这个jar包的核心功能是简化了...
《Apache Commons BeanUtils详解》 Apache Commons BeanUtils是Apache软件基金会的一个开源项目,它提供了一组实用工具类,用于简化JavaBean对象的操作。这个库的核心是`org.apache.commons.beanutils`包,其中包含...
commons-beanutils-1.8.0.jar beanutils.jar beanutils.jar工具包