有关apache包里面的BeanUtils.copyProperties 字段类型为Integer或者Double时,自动赋值为默认值的问题随笔

BeanUtils.copyProperties(A,B);
如果数据源B对象里面的某一个类型为Double的字段是null,那么通过Apache的这个方法copy过来,那么A对象里面的对应字段就会默认为0.0
这就然我们很反感,有可能涉及到我们自己的业务逻辑之后的改变。

我们可以采用ConvertUtils.register() 来解决这个问题。具体代码如下:
ConvertUtils.register(new DoubleConverter(null), Double.class);
ConvertUtils.register(new IntegerConverter(null), Integer.class);
ConvertUtils.register(new DateConverter(null), java.util.Date.class);
BeanUtils.copyProperties(jq_cp, productBean);

这里的ConverUtils,DoubleConverter,IntegerConverter,DateConverter 都用的apache.commons 里面的包。

你可能感兴趣的:(面向对象设计)