对象映射时 Integer 类型字段转换枚举处理麻烦 一个工具类搞定

使用场景

当我们返回给前端所需的对象数据时,大多数情况可以直接使用 StructMap 映射实现自动转换,但碰到对象中的某些字段需要从 Integer 类型转换成对应枚举的时候,在 StructMap 中就需要单独对这些字段添加转换注解,实现较为麻烦,故整合出了一个通用转换工具类。

ConverUtils 工具类实现

public class ConvertUtils {

    // 普通对象转换
    public static  T toObject(Object o, Class tClass) {
        return JacksonUtils.from(JacksonUtils.to(o), tClass);
    }

    // List 对象转换
    public static  List toListOject(List list, Class tClass) {
        if (CollectionUtil.isEmpty(list)) {
            return Collections.emptyList();
        }
        List result = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            result.add(JacksonUtils.from(JacksonUtils.to(list.get(i)), tClass));
        }
        return result;
    }

    // 此处使用的 com.github.pagehelper 分页 分页对象转换
    public static  PageResult toPageOject(PageInfo pageInfo, Class clazz) {
        if (pageInfo == null || CollectionUtil.isEmpty(pageInfo.getList())) {
            return new PageResult(0, 20, 1, Collections.emptyList());
        }
        List from = toListOject(pageInfo.getList(), clazz);
        return new PageResult(pageInfo.getTotal(), pageInfo.getPageSize(), pageInfo.getPageNum(), from);
    }
}

调用方式举例

public class EnterprisePageVO {

    @ApiModelProperty(value = "学生id")
    private Long id;

    @ApiModelProperty(value = "姓名")
    private String name;

    @ApiModelProperty(value = "性别")
    private SexEnum importOrgId;

    @ApiModelProperty(value = "考试科目")
    private List importOrgId;

}

StudentVO student = ConvertUtils.toObject(studentDTO, StudentVO.class);

Original: https://www.cnblogs.com/pandacode/p/16171437.html
Author: 这个杀手冷死了
Title: 对象映射时 Integer 类型字段转换枚举处理麻烦 一个工具类搞定

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/575888/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 计算机组成原理——组成篇

    计算机的总线 1 、总线的作用及概述 解决设备间通讯问题。 总线是为了解决不同设备之间的通信问题。 总线可以连接CPU和IO设备。 2 、总线分类:片内总线、系统总线 片内总线:连…

    数据库 2023年6月16日
    050
  • 线程的生命周期

    线程的生命周期​ 线程具有生命周期,其中包含 5种状态(出生状态,就绪状态,运行状态、暂停状态、死亡状态)。 出生状态就是线程被创建时的状态:当线程对象调用 start()方法 后…

    数据库 2023年6月16日
    0108
  • MySQL知识点大全!!

    使用PreStatement对象: public int execUpdate(String sql, Object[] parms) { int count = 0; try {…

    数据库 2023年6月16日
    081
  • 小米路由器3刷x-wrt分享

    准备工作 刷机有风险,操作需谨慎,建议使用备用路由器,以免与世隔绝。原文教程较为详细,因此本文就文件分享,及操作经验,具体请观看原文。 小米路由器3官方降级固件: http://b…

    数据库 2023年6月11日
    082
  • mysql基本数据类型

    概述 要想学好mysql,了解其支持的基本数据类型以及内部原理是极为重要的,只有这样,我们才能根据不同的业务要求来选择不同的数据类型,实现最佳的存储效果和查询性能,因而本文就着重总…

    数据库 2023年5月24日
    0128
  • 3_MyBatis

    一. 引言 1.1 什么是框架? 软件的半成品, 解决了软件开发过程中的普适性问题, 从而简化了开发步骤, 提升了开发效率 1.2 什么是ORM框架? ORM(Object Rel…

    数据库 2023年6月11日
    071
  • MySQL45讲之主备数据一致性

    本文主要介绍 MySQL 主备数据同步的重要日志 binlog 的三种格式,和双 M 结构的循环复制问题。 binlog三种格式 1. statement格式 直接存储了执行的 S…

    数据库 2023年5月24日
    087
  • spring内嵌cglib包,这里藏着一个大坑

    问题发现 2022-01-21 早上 9 点,订单系统出现大面积的”系统未知错误”报错,导致部分用户无法正常下单。查询后台日志,可以看到大量的 duplic…

    数据库 2023年6月6日
    0100
  • xtrabackup2版本和xtrabackup8版本对比

    导语在使用xtrabackup8版本对mysql8版本进行备份恢复搭建从库的时候,继续使用xtrabackup2版本的方式,从xtrabackup_binlog_info 文件中找…

    数据库 2023年5月24日
    076
  • 1. SQL

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月16日
    076
  • 4、Idea设置显示多行文件

    使用IDEA时,可能会没有注意到,一旦打开过多的Java文件时,默认会堆积在一行显示,就像浏览器打开了多个标签一样,此时需要通过右侧箭头筛选的方式来选择其他文件。为了解决这一问题,…

    数据库 2023年6月6日
    088
  • JUC部分并发类使用方式

    下面介绍的是JUC包下一些线程安全类的一些简单使用和一些小demo。 信号量,即可以同时使用的线程数,tryrequire就是将信号量减一,release就是信号量+1,当等于0就…

    数据库 2023年6月11日
    055
  • 新买的百度云服务器随便玩玩之部署简单页面

    新买的百度云服务器随便玩玩之部署简单页面 1.vscode 连接百度云服务器 vscode下载拓展 2.在远程资源管理器中添加新的远程资源管理 3.输入云服务器公网ip地址;输入密…

    数据库 2023年6月16日
    0102
  • go interface{}使用

    先上代码 为什么会报错? 因为空接口拥有两个指针,内存布局上会占用两个机器字长。 对于长度为n的空接口切片而言,它的每个元素都是以2机器字长为单位的连续空间,因此总共会占用 2n个…

    数据库 2023年6月9日
    068
  • kafka详解(一)–kafka是什么及怎么用

    kafka是什么 在回答这个问题之前,我们需要先了解另一个东西–event streaming。 什么是event streaming 我觉得, event strea…

    数据库 2023年6月6日
    076
  • MYSQL的Java操作器——JDBC

    在学习了Mysql之后,我们就要把Mysql和我们之前所学习的Java所结合起来 而JDBC就是这样一种工具:帮助我们使用Java语言来操作Mysql数据库 JDBC简介 首先我们…

    数据库 2023年6月14日
    068
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球