Java8新特性之consumer的用法
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的用法相关推荐
- Java8新特性Stream的常见用法
目录 Stream简介 Stream的使用 创建流 (1) 通过Stream.of()将元素转化成流 (2)每个集合都可以通过调用 stream() 方法来产生一个流 使用举例 (1) 遍历/匹配(f ...
- Java8新特性 consumer
个人公众号,欢迎关注下:小蜗牛会飞 Java8新特性 consumerJava8的一个新特性-consumerhttps://mp.weixin.qq.com/s/YIddXxQvW18ic73O3J ...
- 【java8新特性】——Optional详解(三)
一.简介 Optional类是Java8为了解决null值判断问题,借鉴google guava类库的Optional类而引入的一个同名Optional类,使用Optional类可以避免显式的null ...
- 【java8新特性】——Stream API详解(二)
一.简介 java8新添加了一个特性:流Stream.Stream让开发者能够以一种声明的方式处理数据源(集合.数组等),它专注于对数据源进行各种高效的聚合操作(aggregate operation ...
- 【java8新特性】——lambda表达式与函数式接口详解(一)
一.简介 java8于2014年发布,相比于java7,java8新增了非常多的特性,如lambda表达式.函数式接口.方法引用.默认方法.新工具(编译工具).Stream API.Date Time ...
- Java8新特性总结 -5.Stream API函数式操作流元素集合
所有示例代码打包下载 : 点击打开链接 Java8新特性 : 接口新增默认方法和静态方法 Optional类 Lambda表达式 方法引用 Stream API - 函数式操作流元素集合 Date/T ...
- Java8新特性学习_001_(Lambda表达式,函数式接口,方法引用,Stream类,Optional类)
目录 ■代码 ■代码运行结果 ■代码说明 ・44行:Stream的.foreach方法ー参数类型:函数式接口 ・82行:Interface中,default方法 ・92行 Stream的.max方 ...
- Java8新特性之空指针异常的克星Optional类
Java8新特性系列我们已经介绍了Stream.Lambda表达式.DateTime日期时间处理,最后以"NullPointerException" 的克星Optional类的讲解 ...
- Java8新特性----Lambda表达式详细探讨
Java8新特性 Lambda表达式 入门演示 案例1 如何解决 cannot be cast to java.lang.Comparable问题? 案例2 优化方式一 : 策略设计模式 优化方式二: ...
最新文章
- 微软学者 | 郭达雅:瞄准科研目标主动出击,挑战“不可思议”
- 压缩目录Linux常用的几种文件压缩解压方法
- 10个最好的 jQuery 视频插件(转)
- 微信JSAPI支付,报错当前页面的URL未注册
- Linux开关命令(shutdown,reboot,halt,init)
- 再谈C#里4个访问权限修饰符
- 苹果要换Type-C接口?丁磊建议统一充电器接口 工信部回复来了...
- ObjC学习9-Foundation框架之数字、字符串和集合
- cmd 命令 之 dir 之 强化使用
- CString to LPWSTR
- java io 读取配置文件_(转)Java 读写Properties配置文件
- 【SICP练习】142 练习3.77
- 记忆GRE词汇三大原则
- PCM 与WAV相互转换代码
- Dreammaker水疗流行的Eclipse从他们的加州系列,审议
- 程序员自我修养阅读笔记——运行库
- 神经网络时间序列分析,神经网络模型可解释性
- 北邮计算机学院男女比例,985大学男女比例,找对象有依据!
- 模拟21cn邮箱登陆,获取邮件
- openssh移植 for pycharm 远程调试 sftp