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 13:16:19 浏览: 41
这段代码可以进行如下优化:
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);
```
通过这些优化,可以使代码更加简洁、高效、易读。
相关问题
BigDecimal bd= BigDecimal.ZERO; 如何累加
您可以使用 `bd = bd.add(newValue)` 来累加 `BigDecimal` 对象。例如,如果您想将 `BigDecimal` 对象 `newValue` 加到 `bd` 中,您可以这样写:
```
BigDecimal bd = BigDecimal.ZERO;
bd = bd.add(newValue);
```
这将把 `newValue` 加到 `bd` 中,并将结果存回 `bd` 中。您可以反复调用 `add` 方法来累加多个值,例如:
```
BigDecimal bd = BigDecimal.ZERO;
bd = bd.add(new BigDecimal("10"));
bd = bd.add(new BigDecimal("20"));
bd = bd.add(new BigDecimal("30"));
```
这将把 10、20 和 30 加到 `bd` 中,最终的值将是 60。
BigDecimal sum = BigDecimal.ZERO;什么意思?
BigDecimal sum = BigDecimal.ZERO;这行代码的意思是创建一个名为"sum"的BigDecimal类型变量,并将其初始化为零。BigDecimal是Java中用于处理精确数值计算的类,可以处理任意精度的十进制数。在这个例子中,我们将sum初始化为零,以便后续进行累加操作。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)