欢迎点点关注:程序猿方,会不定期分享实用技术文章,共同探讨编程魅力!
BeanUtils中create()的使用
我们在编程过程中,一个JavaBean对象通常包含了大量的属性,需要把数据库查询的Entity数据,映射到VO实体类时,在不使用任何工具的情况下,一个一个set/get方法,面对大量的set数据时,在代码层面来说既不美观又繁琐,无意中,我了解了cn.hutool.core.bean.BeanUtil的toBean方法,不失为一个巧妙的方法。经过了解后,我了解到了Hutool。在我个人看来,Hutool工具包是一个很强大的工具包,在编程过程中,api是对编程人员来说,简直是一个神器,特此分享一下我的使用过程和心得体会。
地址:hutool-码云(gitee.com)
引用jar依赖包
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.29</version>
</dependency>
public static <T> BeanCopier<T> create(Object source, T dest, Type destType, CopyOptions copyOptions)创建BeanCopier
Type Parameters:
T
- 目标Bean类型Parameters:
source
- 来源对象,可以是Bean或者Map
dest
- 目标Bean对象
destType
- 目标的泛型类型,用于标注有泛型参数的Bean对象
copyOptions
- 拷贝属性选项Returns:
BeanCopier
自定义封装的方法,调用toBean
/**
* 对象或Map转Bean
*
* @param <T> 转换的Bean类型
* @param source Bean对象或Map
* @param clazz 目标的Bean类型
* @return Bean对象
*/
public static <T> T toBean(Object source, Class<T> clazz) {
return toBean(source, clazz, null);
}
/**
* 对象或Map转Bean
*
* @param <T> 转换的Bean类型
* @param source Bean对象或Map
* @param clazz 目标的Bean类型
* @param options 属性拷贝选项
* @return Bean对象
*/
public static <T> T toBean(Object source, Class<T> clazz, CopyOptions options) {
return toBean(source, () -> ReflectUtil.newInstanceIfPossible(clazz), options);
}
/**
* 对象或Map转Bean
*
* @param <T> 转换的Bean类型
* @param source Bean对象或Map
* @param targetSupplier 目标的Bean创建器
* @param options 属性拷贝选项
* @return Bean对象
*/
public static <T> T toBean(Object source, Supplier<T> targetSupplier, CopyOptions options) {
if (null == source || null == targetSupplier) {
return null;
}
final T target = targetSupplier.get();
copyProperties(source, target, options);
return target;
}
cn.hutool.core.bean.copier.BeanCopier()方法
觉得写的不错的朋友,请点点赞!❤❤❤❤❤❤❤❤