BigDecimal actMoney = billMaster.getBillActMoney(); needCharge = Objects.isNull(actMoney)?new BigDecimal("0"):actMoney.subtract(hasCharge); if(needCharge.compareTo(new BigDecimal("0")) == -1){ needCharge = new BigDecimal("0"); } billMaster.setHasChargeMoney(hasCharge); billMaster.setNeedChargeMoney(needCharge);如何优化这段代码
时间: 2023-07-16 14:16:19 浏览: 98
js的BigDecimal.js 用于表示金额,修改为vue引用,含原版
这段代码可以进行如下优化:
1. 对于BigDecimal类型的比较,可以使用BigDecimal.ZERO代替new BigDecimal("0"),这样可以避免创建一个BigDecimal对象。
2. 可以使用Optional类来简化代码,避免使用Objects类进行判空处理。
3. 对于BigDecimal类型的运算,可以使用BigDecimal的subtract方法来实现减法运算,而不是使用加法运算符和负数进行计算。
4. 在进行BigDecimal类型的比较时,可以使用compareTo方法的返回值来进行比较,避免使用等于、大于、小于等运算符。
优化后的代码如下:
```
BigDecimal actMoney = billMaster.getBillActMoney();
BigDecimal needCharge = actMoney == null ? BigDecimal.ZERO : actMoney.subtract(hasCharge);
needCharge = needCharge.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : needCharge;
billMaster.setHasChargeMoney(hasCharge);
billMaster.setNeedChargeMoney(needCharge);
```
通过这些优化,可以使代码更加简洁、高效、易读。
阅读全文