BeanUtils.copyProperties()与PropertyUtils.copyProperties()
定义:
- BeanUtils中copyProperties定义
public static void copyProperties(Object source, Object target) throws BeansException {
copyProperties(source, target, null, (String[]) null);
}
- PropertyUtils中copyProperties定义
public static void copyProperties(Object dest, Object orig) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
PropertyUtilsBean.getInstance().copyProperties(dest, orig);
}
相同点:
- 通过反射将一个对象的值赋值个另外一个对(待赋值对象与源对象的相同属性会被赋值)。
- 都是浅拷贝
区别1:一个是前值赋值给后值,另一个相反,如果使用的比较新的IDEA,函数有提示,一般不会写错
区别2:PropertyUtils的copyProperties()方法提供类型转换功能,即发现两个JavaBean的同名属性为不同类型时,在支持的数据类型范围内进行转换,BeanUtils 不支持这个功能,但是BeanUtils速度会更快一些
注:一定要考虑使用的场景,再选择使用这两个方法,避免浅拷贝出错
使用场景
1,属性单一
2,子对象属性变化不大