Java8中forEach()里使用return的效果

先总结:使用forEach()处理集合时不能使用break和continue这两个方法,可以使用无返回值的return跳出此次循环,效果同标准for循环的continue
forEach()
首先,forEach()先对入参判空,然后使用增强for循环调用action.accept(t),因为Consumer接口是一个函数式接口。所以可以使用Lambda表达式来对参数进行处理。
accept
因为accept方法使用void修饰,即accept该方法没有返回值,所以使用带有返回值的return时会报错:
不允许的返回值
而使用无返回值的return可使return标记后的代码不可达,以达到跳出此次循环的效果:
不可到达语句
如果在forEach()时使用了带有值的return,本质上等同于下例:

    // 测试消费方法
    public static void accept(Integer j, Consumer<Integer> con) {
        con.accept(j);
    }
    // 测试数组
    List<Integer> array = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));

各差异

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值