lambda 表达式接受外部变量是通过copy副本的方式,所以编译器要求不能修改该变量值或则引用值,如果要修改可以通过集合或则实体类包装的方式实现。
如:
https://zhuanlan.zhihu.com/p/29245059
public static void main(String[] args) {
System.out.println("sss");
List<String> list = Arrays.asList("0.1", "1.22", "22", "321");
List<BigDecimal> bigDecimal = new ArrayList<>();
list.forEach(u->{
if (CollectionUtils.isEmpty(bigDecimal)) {
bigDecimal.add(new BigDecimal(u));
} else {
bigDecimal.set(0, bigDecimal.get(0).add(new BigDecimal(u)));
}
});
System.out.println(bigDecimal.toString());
}
来源:CSDN
作者:拉丁卡特
链接:https://blog.csdn.net/u013217730/article/details/103973877