当前位置: 首页 > news >正文

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

各差异

http://www.lryc.cn/news/115621.html

相关文章:

  • MVC配置原理
  • rabbitmq安装
  • 轻松抓取网页内容!API助力开发者,快速数据采集
  • CSDN 直播:腾讯云大数据 ES 结合 AI 大模型与向量检索的新一代云端检索分析引擎 8月-8号 19:00-20:30
  • 区块链智能合约代码示例
  • Spring Boot介绍--快速入门--约定优于配置
  • Scons编译lib库
  • React源码解析18(1)------ React.createElement 和 jsx
  • 系列3-常见的高可用MySQL解决方案
  • C#登录后携带cookie爬取数据
  • 自动驾驶国家新一代人工智能开放创新平台产业化应用
  • Maven分模块-继承-聚合-私服的高级用法
  • Spring 是如何解决循环依赖问题的?
  • Spring-2-深入理解Spring 注解依赖注入(DI):简化Java应用程序开发
  • java 强密码验证策略工具类
  • CI/CD—K8S 基本理解与部署
  • 2023网络安全常用工具汇总(附学习资料+工具安装包)
  • OpenStack监控工具
  • 讲解密码学综合应用
  • Flamingo
  • Leetcode-每日一题【剑指 Offer 12. 矩阵中的路径】
  • 安全渗透知识总结二
  • 【线程】wait()+notifyAll()实现多个线程交替遍历,输出ABCABC
  • MyBatis 缓存机制复习及项目中的应用经历
  • 匈牙利算法详解
  • script的三种加载模式
  • mongo 中两张表联合查询
  • 【Linux】多路转接 -- epoll
  • 学会RabbitMQ的延迟队列,提高消息处理效率
  • ChatGPT会取代搜索引擎吗?BingChat、GoogleBard与ChatGPT区别