add copyToList

This commit is contained in:
Looly 2021-04-20 12:09:03 +08:00
parent feefd22997
commit 591d01a5dc
2 changed files with 23 additions and 1 deletions

View File

@ -3,13 +3,14 @@
-------------------------------------------------------------------------------------------------------------
# 5.6.4 (2021-04-19)
# 5.6.4 (2021-04-20)
### 新特性
* 【core 】 DatePattern补充DateTimeFormatterpr#308@Gitee
* 【core 】 DateUtil.compare增加支持给定格式比较pr#310@Gitee
* 【core 】 BeanUtil增加edit方法issue#I3J6BG@Gitee
* 【db 】 Column中加入columnDef字段默认值issue#I3J6BG@Gitee
* 【core 】 BeanUtil增加copyToList方法issue#1526@Github
### Bug修复
* 【db 】 修复SQL分页时未使用别名导致的错误同时count时取消order by子句issue#I3IJ8X@Gitee

View File

@ -29,6 +29,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import java.util.stream.Collectors;
/**
* Bean工具类
@ -714,6 +715,25 @@ public class BeanUtil {
BeanCopier.create(source, target, copyOptions).copy();
}
/**
* 复制集合中的Bean属性<br>
* 此方法遍历集合中每个Bean复制其属性后加入一个新的{@link List}
*
* @param collection 原Bean集合
* @param targetType 目标Bean类型
* @param copyOptions 拷贝选项
* @param <T> Bean类型
* @return 复制后的List
* @since 5.6.4
*/
public static <T> List<T> copyToList(Collection<?> collection, Class<T> targetType, CopyOptions copyOptions){
return collection.stream().map((source)->{
final T target = ReflectUtil.newInstanceIfPossible(targetType);
copyProperties(source, target, copyOptions);
return target;
}).collect(Collectors.toList());
}
/**
* 给定的Bean的类名是否匹配指定类名字符串<br>
* 如果isSimple为{@code false}则只匹配类名而忽略包名例如cn.hutool.TestEntity只匹配TestEntity<br>
@ -845,4 +865,5 @@ public class BeanUtil {
}
return false;
}
}