好久不写泛型代码,突然会想不起来怎么写了,所以记录一下。最近开发了一个工具方法,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
public class PageUtils {
public static <T, R> Page<R> entityPageToResponseDataPage(Page<T> entityPage, Class<R> clazz) {
return entityPageToResponseDataPage(entityPage, clazz, null);
}
public static <T, R> Page<R> entityPageToResponseDataPage(Page<T> entityPage, Class<R> clazz,
BiConsumer<T, R> disposer) {
List<R> pageRecords = new ArrayList<>();
for (T record : entityPage.getRecords()) {
R pateRecordItem = BeanUtil.copyProperties(record, clazz);
if (disposer != null) {
disposer.accept(record, pateRecordItem);
}
pageRecords.add(pateRecordItem);
}
Page<R> result = new Page<>();
BeanUtils.copyProperties(entityPage, result);
result.setRecords(pageRecords);
return result;
}
}
|
应用场景是这样的,我们分页查询时用的是实体,但是返回给前端时用的是DTO,所以需要进行一些转换工作,这个类就是帮忙快速转换的。
参考资料
- JAVA——泛型类和泛型方法(静态方法泛型)