8、制作CopyUtil封装BeanUtils
第一步:新建 util 包,创建 CopyUtil 类
package com.zibo.wiki.util;
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
public class CopyUtil {
/**
* 单体复制
*/
public static <T> T copy(Object source, Class<T> clazz) {
if (source == null) {
return null;
}
T obj;
try {
obj = clazz.newInstance();
} catch (Exception e) {
e.printStackTrace();
return null;
}
BeanUtils.copyProperties(source, obj);
return obj;
}
/**
* 列表复制
* 老师是这么写的:List source
* 我觉得提示难看,改成了:List<?> source
*/
public static <T> List<T> copyList(List<?> source, Class<T> clazz) {
List<T> target = new ArrayList<>();
if (!CollectionUtils.isEmpty(source)){
for (Object c: source) {
T obj = copy(c, clazz);
target.add(obj);
}
}
return target;
}
}
第二步:修改 EBookService
package com.zibo.wiki.serivce;
import com.zibo.wiki.domain.Ebook;
import com.zibo.wiki.domain.EbookExample;
import com.zibo.wiki.mapper.EbookMapper;
import com.zibo.wiki.req.EbookReq;
import com.zibo.wiki.resp.EbookResp;
import com.zibo.wiki.util.CopyUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class EBookService {
@Autowired
private EbookMapper ebookMapper;
public List<EbookResp> list(EbookReq req){
EbookExample ebookExample = new EbookExample();
// 查询条件
EbookExample.Criteria criteria = ebookExample.createCriteria();
criteria.andNameLike("%" + req.getName() + "%");
List<Ebook> ebookList = ebookMapper.selectByExample(ebookExample);
// List<EbookResp> respList = new ArrayList<>();
// for (Ebook ebook : ebookList) {
// EbookResp ebookResp = new EbookResp();
// BeanUtils.copyProperties(ebook,ebookResp); // 拷贝
// respList.add(ebookResp);
// }
return CopyUtil.copyList(ebookList, EbookResp.class);
}
}
第三步:运行测试
版权声明:本文为qq_29689343原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。