package com.***.utils;
import org.dozer.DozerBeanMapperBuilder;
import org.dozer.Mapper;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
/**
* 对象拷贝
*
* @author ***
* @date 2018年7月13日 下午5:17:23
*/
public class DozerUtils {
private static volatile Mapper mapper;
private static Object lock = new Object();
static {
if (mapper == null) {
synchronized (lock) {
if (mapper == null) {
mapper = DozerBeanMapperBuilder.create().build();
}
}
}
}
public static void copy(Object source, Object target) {
mapper.map(source, target);
}
public static <T> T copy(Object source, Class<T> clazz){
if(Objects.isNull(source)){
return null;
}
return mapper.map(source, clazz);
}
public static <T> List<T> copyList(List<?> sourceList, Class<T> clazz){
if(Objects.isNull(sourceList) || sourceList.size() == 0){
return Collections.emptyList();
}
List<T> dest = new ArrayList<>();
for (Object source : sourceList){
dest.add(copy(source, clazz));
}
return dest;
}
}
需要导入依赖包
<!--Dozer对象拷贝 -->
<dependency>
<groupId>com.github.dozermapper</groupId>
<artifactId>dozer-core</artifactId>
<version>6.2.0</version>
</dependency>