lambda表达式修改外部变量

lambda 表达式接受外部变量是通过copy副本的方式,所以编译器要求不能修改该变量值或则引用值,如果要修改可以通过集合或则实体类包装的方式实现。
如:
https://zhuanlan.zhihu.com/p/29245059

public static void main(String[] args) {

        System.out.println("sss");

        List list = Arrays.asList("0.1", "1.22", "22", "321");
        List 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());



    }

你可能感兴趣的:(lambda表达式修改外部变量)