如果B 中的Integer 类型的数据是null 的,那么通过这个⽅法复制给A 后,这个null 的Integer 数据会变成0。
也就是它有⾃⼰的规则,如果发现Integer 类型的数据如果是null 的,它会⾃作多情的给个默认值!
这个⾃作多情是很让开发⼈员反感的!⽐如Integer 类型的数据=null 是⼀个逻辑业务,但是经过复制后之前的业务逻辑就不执⾏了今天在使⽤BeanUtils 时发现copyProperties ⽅法从Long 到Long 复制的时候,原字段为null ,结果拷贝过去之后⽬标字段变成了0,这不是我想要的结果,在⽹上搜索了⼀下,是可以通过转换器来设置为null 时的默认转换值。
bigdecimal转换为integer于是我就把⼀些常⽤的数字型的字段的默认转换值设置成了null ,然后再使⽤pyProperties 拷贝字段,Long,Integer 等字段为null 的就不会默认转换成0了。[java]
01. static  {  02.    ister(new  LongConverter(null ), Long.class );  03.    ister(new  ShortConverter(null ), Short.class );  04.    ister(new  IntegerConverter(null ), Integer.class );  05.    ister(new  DoubleConverter(null ), Double.class );  06.    ister(new  BigDecimalConverter(null ), BigDecimal.class );  07. }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。