首页 > 解决方案 > 在java中用于嵌套函数的编码实践

问题描述

我想知道我应该写哪种类型的代码:

public BigDecimal getItemSubTotal(BigDecimal quantity) {
        return getBasePrice().multiply(quantity).multiply(getRentalAdjustment()).add(getOtherAdjustments());
}

或者

public BigDecimal getItemSubTotal(BigDecimal quantity) {
    BigDecimal basePrice = getBasePrice();
    BigDecimal rentalAdj = getRentalAdjustment();
    BigDecimal otherAdj = getOtherAdjustments();
    return basePrice.multiply(quantity).multiply(rentalAdj).add(otherAdj);
}

除了代码可读性之外,哪个代码块更好?为什么?哪个代码块将花费更少的时间和内存?

标签: java

解决方案


除了代码可读性

这两个特定示例之间的唯一区别是,在第一种情况下,如果 - 不知何故 -调用失败,则不会调用getRentalAdjustment()and 。getOtherAdjustments()BigDecimal.multiply

唯一记录在案的BigDecimal.multiply失败方式是传递一个空操作数。(当然,multiply如果getBasePrice()返回 null,也可以调用 null 接收器)。

除此之外,什么都没有。这完全取决于可读性。


推荐阅读