微服务应用大行其道,我提供一个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
代码量是不是很少~~~