Java如何将任意类型的Object对象转换为相应的实体对象
作者:走马川行雪
这篇文章主要介绍了Java如何将任意类型的Object对象转换为相应的实体对象问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
将任意类型的Object对象转换为相应的实体对象
通过com.fastxml.jackson的ObjectMapper对象进行转换:
ObjectMapper objectMapper = new ObjectMapper(); objectMapper.convertValue(Object fromValue, Class<T> toValueType);
Java转换对象方式
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。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。