欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java 对象之间属性值复制

程序员文章站 2022-05-02 09:53:43
...
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一样会报错。         
总结:
若目标对象或源对象有一方为null,则会抛出异常
如:java.lang.IllegalArgumentException: No destination bean specified
若在复制含有日期属性的对象时,使用BeanUtils.copyProperties,源日期属性值为null,则会抛出org.apache.commons.beanutils.ConversionException: No value specified for 'Date',此时可以用PropertyUtils.copyProperties