lambda表达式修改外部变量

China☆狼群 提交于 2020-01-14 19:45:55

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());



    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!