我正在尝试从一个使用详细信息类值的POJO中创建getValue()
函数,其意义如下:
@Transient
public BigDecimal getValue() {
BigDecimal sum = new BigDecimal(0);
details.stream().forEach((detail) -> {
sum = sum.add(detail.getValue());
});
return sum;
}
但我不知道为什么这行代码
sum = sum.add(detail.getValue());
会引发以下错误:请问您能告诉我我做错了什么吗?谢谢。从 lambda 表达式引用的局部变量必须是 final 或有效 final
sum
),则必须将其声明为final
。因此,您不能按照您展示的方式进行,必须另寻他法。 - T.J. Crowdersum
,那么我会得到下一个错误:“无法为最终变量sum分配值”。 - axiorema