微服务应用大行其道,我提供一个dto和entity转换工具类,方便大家做转换,少写机械代码,多陪陪家人

ぐ巨炮叔叔 提交于 2019-11-29 07:22:48

微服务应用大行其道,我提供一个dto和entity转换工具类,方便大家做转换,少写机械代码,多陪陪家人。

该工具类主要是对dozer进行了封装,使用过程代码量极少,废话少说,贴代码了

import java.util.ArrayList;
import java.util.List;

import org.dozer.DozerBeanMapper;
import org.dozer.Mapper;

public class DtoEntityUtil {
    
    static Mapper mapper = new DozerBeanMapper();

    public static <D,E> E trans(D t,Class<E> clazz){
        if(t == null)
            return null;
        return mapper.map(t, clazz);
    }
    
    public static <D,E> List<E> trans(D[] ts,Class<E> clazz){        
        List<E> es = new ArrayList<E>();
        if(ts == null)
            return es;
        
        for(D d:ts) {
            E e = (E)trans(d,clazz);
            if(e != null)
                es.add(e);
        }
        
        return es;
    }
    
    
    public static <D,E> List<E> trans(List<D> ts,Class<E> clazz){
        List<E> es = new ArrayList<E>();
        if(ts == null )
            return es;
        for(D d:ts) {
            E e = (E)trans(d,clazz);
            if(e != null)
                es.add(e);
        }
        return es;
    }
    
}

举例:

//下面两段代码是将entity转换成dto;分别是单个对象转换和集合对象转换;一般用于向consumer提供数据

//WorkeRecord是entity,从数据库中获取的对象

DtoEntityUtil.trans(workeRecord, WorkerRecordDTO.class);

//es是List集合,里面的对象是WorkeRecord的实例

List<WorkerRecordDTO> ds = (List<WorkerRecordDTO>)DtoEntityUtil.trans(es, WorkerRecordDTO.class);

//================华丽分隔符==================

//下面例子是dto转entity,一般用于向provider传入对象

DtoEntityUtil.trans(menuDto, Menu.class);//将mentDto转换成mentEntity

List<User> users = DtoEntityUtil.trans(ts, User.class);//将dto集合ts转换成entityList users

 

代码量是不是很少~~~

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!