consumer是一个函数式接口(可以采用lambda写法),它的源码如下

@FunctionalInterface
public interface Consumer<T> {void accept(T t);default Consumer<T> andThen(Consumer<? super T> after) {Objects.requireNonNull(after);return (T t) -> { accept(t); after.accept(t); };}
}

consumer的具体的使用场景就是可以提前记录我们的某些操作,然后在后面再去执行,比如说:当我们在a方法中,需要把某些参数赋值给一个Integer类型的对象,而该对象只有在b方法才能赋值,那么我们可以在a方法中使用consumer记录我们要执行的操作,再把consumer作为参数传递到b方法执行,多种操作可以用该接口的default方法addThen来持续记录

a(int x, int y){Consumer<Integer> consumer = null;consumer = z -> z = x + 2;consumer.addThen(z -> z -= y);b(consumer);
}b(Consumer<Integer> consumer){Integer z = 0;consumer.accept(z);
}

Java8新特性之consumer的用法相关推荐

  1. Java8新特性Stream的常见用法

    目录 Stream简介 Stream的使用 创建流 (1) 通过Stream.of()将元素转化成流 (2)每个集合都可以通过调用 stream() 方法来产生一个流 使用举例 (1) 遍历/匹配(f ...

  2. Java8新特性 consumer

    个人公众号,欢迎关注下:小蜗牛会飞 Java8新特性 consumerJava8的一个新特性-consumerhttps://mp.weixin.qq.com/s/YIddXxQvW18ic73O3J ...

  3. 【java8新特性】——Optional详解(三)

    一.简介 Optional类是Java8为了解决null值判断问题,借鉴google guava类库的Optional类而引入的一个同名Optional类,使用Optional类可以避免显式的null ...

  4. 【java8新特性】——Stream API详解(二)

    一.简介 java8新添加了一个特性:流Stream.Stream让开发者能够以一种声明的方式处理数据源(集合.数组等),它专注于对数据源进行各种高效的聚合操作(aggregate operation ...

  5. 【java8新特性】——lambda表达式与函数式接口详解(一)

    一.简介 java8于2014年发布,相比于java7,java8新增了非常多的特性,如lambda表达式.函数式接口.方法引用.默认方法.新工具(编译工具).Stream API.Date Time ...

  6. Java8新特性总结 -5.Stream API函数式操作流元素集合

    所有示例代码打包下载 : 点击打开链接 Java8新特性 : 接口新增默认方法和静态方法 Optional类 Lambda表达式 方法引用 Stream API - 函数式操作流元素集合 Date/T ...

  7. Java8新特性学习_001_(Lambda表达式,函数式接口,方法引用,Stream类,Optional类)

    目录 ■代码 ■代码运行结果 ■代码说明 ・44行:Stream的.foreach方法ー参数类型:函数式接口 ・82行:Interface中,default方法 ・92行   Stream的.max方 ...

  8. Java8新特性之空指针异常的克星Optional类

    Java8新特性系列我们已经介绍了Stream.Lambda表达式.DateTime日期时间处理,最后以"NullPointerException" 的克星Optional类的讲解 ...

  9. Java8新特性----Lambda表达式详细探讨

    Java8新特性 Lambda表达式 入门演示 案例1 如何解决 cannot be cast to java.lang.Comparable问题? 案例2 优化方式一 : 策略设计模式 优化方式二: ...

最新文章

  1. 微软学者 | 郭达雅:瞄准科研目标主动出击,挑战“不可思议”
  2. 压缩目录Linux常用的几种文件压缩解压方法
  3. 10个最好的 jQuery 视频插件(转)
  4. 微信JSAPI支付,报错当前页面的URL未注册
  5. Linux开关命令(shutdown,reboot,halt,init)
  6. 再谈C#里4个访问权限修饰符
  7. 苹果要换Type-C接口?丁磊建议统一充电器接口 工信部回复来了...
  8. ObjC学习9-Foundation框架之数字、字符串和集合
  9. cmd 命令 之 dir 之 强化使用
  10. CString to LPWSTR
  11. java io 读取配置文件_(转)Java 读写Properties配置文件
  12. 【SICP练习】142 练习3.77
  13. 记忆GRE词汇三大原则
  14. PCM 与WAV相互转换代码
  15. Dreammaker水疗流行的Eclipse从他们的加州系列,审议
  16. 程序员自我修养阅读笔记——运行库
  17. 神经网络时间序列分析,神经网络模型可解释性
  18. 北邮计算机学院男女比例,985大学男女比例,找对象有依据!
  19. 模拟21cn邮箱登陆,获取邮件
  20. openssh移植 for pycharm 远程调试 sftp

热门文章

  1. 7天搞定生成对抗网络!百度高级工程师组队来袭
  2. 钉钉机器人自动回复消息_微信pc客户端自动发消息(微信聊天机器人)
  3. JAVA中怎么去掉字符串中间的空格?
  4. 配置eyeOS系统--6--后记
  5. mysql用户权限管理:查看用户权限、授予用户权限、收回用户权限
  6. 电子邮箱注册,适合公司用的电子邮箱
  7. Android 切片软件使用教程,Cutterman 切图使用指南
  8. 进入日资企业全攻略(转)
  9. 实验吧(逆向):分道扬镳
  10. 车联网的数据安全该怎么保护