BeanUtils 转换器将Long ,Integer等数字类型的默认值设置为null

时间:2022-08-13 09:59:44
  1. static {  
  2.     ConvertUtils.register(new LongConverter(null), Long.class);  
  3.     ConvertUtils.register(new ShortConverter(null), Short.class);  
  4.     ConvertUtils.register(new IntegerConverter(null), Integer.class);  
  5.     ConvertUtils.register(new DoubleConverter(null), Double.class);  
  6.     ConvertUtils.register(new BigDecimalConverter(null), BigDecimal.class);  

今天在使用BeanUtils时发现copyProperties方法从Long到Long复制的时候,原字段为null,结果拷贝过去之后目标字段变成了0,这不是我想要的结果,在网上搜索了一下,是可以通过转换器来设置为null时的默认转换值。

于是我就把一些常用的数字型的字段的默认转换值设置成了null,然后再使用BeanUtils.copyProperties拷贝字段,Long,Integer等字段为null的就不会默认转换成0了。