Consumer

如果需要访问类型T的对象,并对其执行某些操作,就可以使用这个Consumer接口。

输出list的内容

public static void main(String[] args) {

List list = Arrays.asList("1", "2", "3", "11", "22", "33");

Consumer consumer = (String str) -> System.out.println(str);

Consumer andThenConsumer = (String str) -> System.out.println("andThen:" + str);

Consumer andThen2Consumer = (String str) -> System.out.println("andThen2:" + str);

forEach(list, consumer);

forEach(list, consumer, andThenConsumer);

forEach(list, consumer, andThenConsumer, andThen2Consumer);

}

public static void forEach(List list, Consumer consumer) {

for (T t : list) {

consumer.accept(t);

}

}

运行结果如下:

accept方法负责对字符串的输出。

复合

andThen

除了对字符串的直接输出,还要在前面加个andThen

public static void forEach(List list, Consumer consumer, Consumer andThenConsumer) {

for (T t : list) {

consumer.andThen(andThenConsumer).accept(t);

}

}

运行结果如下:

源码如下:

default Consumer andThen(Consumer super T> after) {

Objects.requireNonNull(after);

return (T t) -> { accept(t); after.accept(t); };

}

所以先执行accept的方法,再执行andThen的方法。

多个andThen

除了对字符串的直接输出,还要在前面加个andThen以及andThen2

public static void forEach(List list, Consumer consumer, Consumer andThenConsumer, Consumer andThen2Consumer) {

for (T t : list) {

consumer.andThen(andThenConsumer).andThen(andThen2Consumer).accept(t);

}

}

运行结果如下:

可以看出,accept方法先执行,然后在从左到右依次执行andThen

java8 comsumer_java8 - 内置函数式接口(Consumer)相关推荐

  1. JDK8新特性(三)之常用内置函数式接口

    我们知道Lambda表达式的前提是需要有函数式接口,而Lambda使用时不关心接口名,抽象方法名,只关心抽象方法的参数列表和返回值类型,因此为了让我们使用Lambda方便,JDK8提供了大量常用的函数 ...

  2. 学习笔记之-java8的新特性-函数式接口,lambda表达式,方法引用,Stream API,Optional类

    1.Lambda表达式 用匿名内部类的方法去创建多线程1.new Thread2.参数传递new Runnable3.重写run方法4.在run方法中去设置线程任务5.调用start问题:我们最终目标 ...

  3. Java8新特性之函数式接口

    一.函数接口 Lambda的设计者们为了让现有的功能与Lambda表达式良好兼容,考虑了很多方法,于是产生了函数接口这个概念.函数接口指的是只有一个函数的接口,这样的接口可以隐式转换为Lambda表达 ...

  4. [彻底理解]JDK1.8 函数式接口 Consumer Supplier 以及 JAVA新纪元 λ表达式的到来

    JDK1.8 函数式接口 Consumer & Supplier 以及 JAVA新纪元 λ表达式的到来 背景什么的被吞了,直接进入主题 函数式接口(定义自己百度,一大堆) 因为看了一些关于JD ...

  5. Java8新特性之函数式接口,呦呦呦

    什么时候可以使用 Lambda?通常 Lambda 表达式是用在函数式接口上使用的.从 Java8 开始引入了函数式接口,其说明比较简单:函数式接口(Functional Interface)就是一个 ...

  6. lambda表达式的五种写法 四大内置函数式接口

    /*Lambda表达式作用: 简化匿名内部类对象使用前提: 函数式接口函数式接口: 只有一个必须被重写的抽象方法的接口称为函数式接口检查函数式接口注解: @FunctionalInterface 强制 ...

  7. jdk8函数式接口——Consumer介绍

    Consumer介绍与实例分析 函数式接口:@FunctionalInterface Consumer(消费者) 函数式接口:@FunctionalInterface 自从jdk8提供了函数式接口这一 ...

  8. 易联云 k4 php对接,设置内置语音接口

    ## 设置内置语音接口 请求地址:`https://open-api.10ss.net/printer/setvoice` 请求方式:POST 注意: `仅支持型号中有字母`A`的机器!`例如`K4- ...

  9. 玩转Java8的 Stream 之函数式接口

    作者:litesky www.jianshu.com/p/2338cabc59e1 函数式接口是伴随着Stream的诞生而出现的,Java8Stream 作为函数式编程的一种具体实现,开发者无需关注怎 ...

最新文章

  1. python 实用程序代码_【转】python常用工具代码
  2. 首张人类黑洞照片的背后
  3. 计算机文化基础4作业,计算机文化基础试题4
  4. PowerDesigner导出表到word
  5. 【C language】函数指针
  6. ie php脚本引擎,使用php重新实现PHP脚本引擎内置函数
  7. AngularJS 快速编程入门
  8. vscode python 自动补全_利用CodeBERT,这个VS Code扩展可以自动生成Python文档字符串...
  9. TextView实现自动滚动滚动.
  10. Java类型转换工具类(十六进制—bytes互转、十进制—十六进制互转,String—Double互转)
  11. spring整合hibernate初步
  12. 20145305 《信息安全系统设计基础》第13周学习总结
  13. 微信小程序的弹窗提示
  14. imx8qm LVDS屏 DS90UB9478调试
  15. 边缘计算介绍以及几款边缘计算开源平台
  16. 邮件服务器SASL TLS 反垃圾邮件系统
  17. 用poi 给word文档添加水印
  18. 例题5-3安迪的第一个字典 UVa10815--C++STL库映射set的应用
  19. 一句平静而感人的英文电影对白
  20. DNS服务之智能DNS

热门文章

  1. 周鸿祎的“花房上市”执念
  2. springboot Nexus Repository Maven仓库搭建及使用
  3. php vox转码,Audio Track Convert Tool(音轨转码工具)
  4. GBase8a如何选择 hash 分布列
  5. 如何正确安装独立显卡?图文详解教会你安装独立显卡
  6. 漫画:卖鱼与买鱼之生产与消费
  7. 14.VRP介绍以及AC初始化配置_AC和AP的软件升级方法
  8. Espresso Test 3: Fragment Test
  9. python模块总结_Python常用模块资料总结和归纳
  10. 《爱上单片机》读后感——5年后终于了解什么是单片机