Dozer 对象字段映射 utils
maven 依赖
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version></version>
</dependency>
<!-- for spring -->
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer-spring</artifactId>
<version></version>
</dependency>
public class MappingUtil {
private static DozerBeanMapper dozerMapper = new DozerBeanMapper();
private MappingUtil() {
}
//list to list
public static <T, U> List<U> mapToList(List<T> sourceList, Class<U> destClazz) {
List<U> result = new ArrayList<>();
if (sourceList == null || sourceList.isEmpty()) {
return result;
}
for (T srcObject : sourceList) {
U outObject = dozerMapper.map(srcObject, destClazz);
result.add(outObject);
}
return result;
}
public static <T, U> PaginationData<U> mapPaginationData(PaginationData<T> source, Class<U> destClazz) {
if (source == null) {
return null;
}
PaginationData<U> result = new PaginationData<>();
result.setData(new ArrayList<>());
result.setCount(source.getCount());
result.setPageIndex(source.getPageIndex());
result.setPageSize(source.getPageSize());
if (source.getData().isEmpty()) {
return result;
}
for (T srcObject : source.getData()) {
U outObject = dozerMapper.map(srcObject, destClazz);
result.getData().add(outObject);
}
return result;
}
//class to class
public static <T, U> U map(T srcObject, Class<U> destClazz) {
if (srcObject == null) {
return null;
}
return dozerMapper.map(srcObject, destClazz);
}
public static <T, U> U merge(T srcObj, U outObject) {
if (srcObj == null) {
return null;
}
if (outObject != null) {
dozerMapper.map(srcObj, outObject);
return outObject;
} else {
return null;
}
}
//for xml 形式
public static DozerBeanMapper getCustomDozerMapper(String xmlFile) {
DozerBeanMapper newObj = new DozerBeanMapper();
List<String> myMappingFiles = new ArrayList<>();
myMappingFiles.add(xmlFile);
newObj.setMappingFiles(myMappingFiles);
return newObj;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗