在实际开发过程中我们都会用到属性拷贝,特别对同一个对象的拷贝,例如,校验保存后,判断那些属性值改变了,需要记录变更明细.
直接使用 BeanUtils.copyProperties(A,B),就会出现问题,例如:如果B中的Integer类型的数据是null的,那么通过这个方法复制给A后,B中属性为null,在A中相同的属性就会变成0(即,该方法在赋值的过程中,会给为null的属性,赋值其属性的默认值);
相关属性:Short,Long,Integer,Double,BigDecimal
public class text {
static {
ConvertUtils.register(new LongConverter(null), Long.class);
ConvertUtils.register(new ShortConverter(null), Short.class);
ConvertUtils.register(new IntegerConverter(null), Integer.class);
ConvertUtils.register(new DoubleConverter(null), Double.class);
ConvertUtils.register(new BigDecimalConverter(null), BigDecimal.class);
}
public static void main(String[] args) throws Exception {
TpgFyxx tpgFyxxA = new TpgFyxx();
TpgFyxx tpgFyxxB = new TpgFyxx();
tpgFyxxB.setJzmj(20.3);
tpgFyxxB.setYxbz(1);
tpgFyxxB.setJgsj(new Date());
BeanUtils.copyProperties(tpgFyxxA,tpgFyxxB);
System.out.println(tpgFyxxA.toString());
}
}