BeanUtils.copyProperties() 复制不同类型属性:Long/BigDecimal 到 String
使用 BeanUtils.copyProperties(ledger, ledgerVO); 复制对象属性时,如果 ledger 中存在部分属性类型为 long 或 BigDecimal,而 ledgerVO 中属性均为 string,且两个实体的属性名相同,该如何正常复制内容呢?
您可以使用 ConvertUtils.register() 方法来注册类型转换器,将 long 和 BigDecimal 类型转换成 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 对象中的 long 和 BigDecimal 类型属性转换为 String 类型,并成功复制到 ledgerVO 对象中。
原文地址: https://www.cveoy.top/t/topic/odV6 著作权归作者所有。请勿转载和采集!