java - 在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);
}
除了代码可读性之外,哪个代码块更好?为什么?哪个代码块将花费更少的时间和内存?
解决方案
除了代码可读性
这两个特定示例之间的唯一区别是,在第一种情况下,如果 - 不知何故 -调用失败,则不会调用getRentalAdjustment()
and 。getOtherAdjustments()
BigDecimal.multiply
唯一记录在案的BigDecimal.multiply
失败方式是传递一个空操作数。(当然,multiply
如果getBasePrice()
返回 null,也可以调用 null 接收器)。
除此之外,什么都没有。这完全取决于可读性。
推荐阅读
- c# - 插入符号直到行尾
- python - 带有行号和列标签的 Pandas Dataframe 2D 选择
- jakarta-ee - 拦截器没有捕获 EJBAccessException
- z3 - z3 Optimize 不会在 Solver 产生结果的情况下产生结果
- kotlin - 在 Vaadin 中调用 FileDownloader 时使用过滤后的 dataProvider 内容
- python - 熊猫转换时间戳和每月摘要
- android - 如何在 Kotlin 中绘制矩形?
- algorithm - 使用循环示例计算循环的时间复杂度
- python - 如何在 python 中使用队列进行文件处理?
- python - 如何强制 Scrapy 显示所有项目而不仅仅是最后一个?