注意:对象属性为引用类型

2019-03-11  本文已影响0人  IBM_LELE
  ctOrders.setCanUseTotal(ArithBigUtil.sub(ctOrders.getCanUseTotal(), coinNum));
  log.info("setCanUseTotal:"+ArithBigUtil.sub(ctOrders.getCanUseTotal(), coinNum));
  ctOrders.setCanuseTotalver(bchange.core.encrypt.EbChangeEncode.encryptKeyMD5
                    (Utils.bigDecimalFormat(ArithBigUtil.sub(ctOrders.getCanUseTotal(), coinNum))));

以上写法是错误的。 ctOrders.setCanUseTotal 被set后,下面 GET后,值就变成新值了。又做了一次减法。
正确的写法

 BigDecimal iCanUseTotal=ArithBigUtil.sub(ctOrders.getCanUseTotal(), coinNum);
  ctOrders.setCanUseTotal(iCanUseTotal);
  log.info("setCanUseTotal:"+iCanUseTotal);
  ctOrders.setCanuseTotalver(bchange.core.encrypt.EbChangeEncode.encryptKeyMD5
                    (Utils.bigDecimalFormat(iCanUseTotal)));
上一篇 下一篇

猜你喜欢

热点阅读