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。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
IntelliJ IDEA运行bat脚本,自动taskkill端口进程
这篇文章主要介绍了IDEA里面无法运行bat文件的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-11-11解决java调用dll报Unable to load library错误的问题
这篇文章主要介绍了解决java调用dll报Unable to load library错误的问题。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-11-11spring boot加载资源路径配置和classpath问题解决
这篇文章主要介绍了spring boot加载资源路径配置和classpath问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-03-03
最新评论