轻松映射 JavaBean 属性:Hutool BeanUtils 的 toBean 方法使用体验分享

欢迎点点关注:程序猿方,会不定期分享实用技术文章,共同探讨编程魅力!

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()方法

 觉得写的不错的朋友,请点点赞!❤❤❤❤❤❤❤❤ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值