BigDecimal add问题:调用add后,求和结果没变:
public class Test {
public static void main(String[] args) {
// 总卡路里
List<DietClockItem> foods = new ArrayList<>();
for(int i=0; i<10; i++) {
DietClockItem dietClockItem = new DietClockItem();
dietClockItem.setCalories(new BigDecimal(i+1));
foods.add(dietClockItem);
}
BigDecimal totalCalories = new BigDecimal(0);
foods.forEach(item -> {
totalCalories.add(item.getCalories());
});
System.out.println(totalCalories); // 0
}
}
BigDecimal 的 add方法是,调用者不变
因此,需要对结果进行接收,改为如下
public class Test {
public static void main(String[] args) {
// 总卡路里
List<DietClockItem> foods =