import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.BeanUtils;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class BeanUtil {
public static T copyProperties(Object source, Class clazz) {
if (source == null) {
return null;
}
T result = null;
try {
result = clazz.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}
BeanUtils.copyProperties(source, result);
return result;
}
public static List copyProperties(List> sourceList, Class clazz) {
if (sourceList == null) {
return null;
}
return sourceList.stream().map(item -> copyProperties(item, clazz)).collect(Collectors.toList());
}
public static Set copyProperties(Set> sourceSet, Class clazz) {
if (sourceSet == null) {
return null;
}
return sourceSet.stream().map(item -> copyProperties(item, clazz)).collect(Collectors.toSet());
}
public static Page copyProperties(Page> sourcePage, Class clazz) {
if (sourcePage == null) {
return null;
}
Page result = new Page();
result.setCurrent(sourcePage.getCurrent());
result.setSize(sourcePage.getSize());
result.setTotal(sourcePage.getTotal());
result.setPages(sourcePage.getPages());
result.setRecords(copyProperties(sourcePage.getRecords(), clazz));
result.setSearchCount(sourcePage.searchCount());
result.setOptimizeCountSql(sourcePage.optimizeCountSql());
return result;
}
}