使用 BeanUtils.copyProperties(ledger, ledgerVO); 复制对象属性时,如果 ledger 中存在部分属性类型为 longBigDecimal,而 ledgerVO 中属性均为 string,且两个实体的属性名相同,该如何正常复制内容呢?

您可以使用 ConvertUtils.register() 方法来注册类型转换器,将 longBigDecimal 类型转换成 String 类型,例如:

ConvertUtils.register(new LongConverter(null), Long.class);
ConvertUtils.register(new BigDecimalConverter(null), BigDecimal.class);

然后再调用 BeanUtils.copyProperties() 方法进行属性复制即可。

完整代码示例:

ConvertUtils.register(new LongConverter(null), Long.class);
ConvertUtils.register(new BigDecimalConverter(null), BigDecimal.class);
BeanUtils.copyProperties(ledger, ledgerVO);

这样就可以将 ledger 对象中的 longBigDecimal 类型属性转换为 String 类型,并成功复制到 ledgerVO 对象中。

BeanUtils.copyProperties() 复制不同类型属性:Long/BigDecimal 到 String

原文地址: https://www.cveoy.top/t/topic/odV6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录