1. BeanUtils.copyProperties(source,target,target.class);
// BeanUtils导包如下
import org.springframework.beans.BeanUtils;
可以看到该包下所有方法都是void类型,无返回值
因此需要我们提前创建一个实例对象去接受目标对象(转换后的对象)
UserDTO targetUser = new UserDTO();
BeanUtils.copyProperties(selectUser,targetUser,UserDTO.class);
System.out.println("UserDTO:"+targetUser);
2.
BeanUtil.copyProperties(source,target.class);
该方法导包为
cn.hutool.core.bean.BeanUtil;
可以看到该实现方法大部分仍然是void类型,但与BeanUtils不同。存在一个具有泛型的返回类型方法,因此可以无需提前创建 转换的实例对象。
补充:
当使用源对象为Object 类型时(例如从JSON字符串转换成对象类型的数据),应该使用第二种方法。若使用第一种方式时,由于Object类型内不含任何属性/getter和setter方法,因此,在转换过程中,无法正常从Object对象获取数据,只能获取到null。