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

使用场景

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

ConverUtils 工具类实现

public class ConvertUtils {

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

    // List 对象转换
    public static <T> List<T> toListOject(List list, Class<T> tClass) {
        if (CollectionUtil.isEmpty(list)) {
            return Collections.emptyList();
        }
        List<T> 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 <T> PageResult<T> toPageOject(PageInfo pageInfo, Class<T> clazz) {
        if (pageInfo == null || CollectionUtil.isEmpty(pageInfo.getList())) {
            return new PageResult<T>(0, 20, 1, Collections.emptyList());
        }
        List<T> from = toListOject(pageInfo.getList(), clazz);
        return new PageResult<T>(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<SubjectEnum> importOrgId;
    
}

StudentVO student = ConvertUtils.toObject(studentDTO, StudentVO.class);
posted @   这个杀手冷死了  阅读(219)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示