Consumer接口

java.util.function.Consumer<T〉接口则正好与Supplier接口相反,它不是生产一个数据,而是消费一个数据,
其数据类型由泛型决定。

抽象方法:accept

Consumer 接口中包含抽象方法void accept(T t),意为消费一个指定泛型的数据。基本使用如

当然,更好的写法时使用方法引用.

Consumer接口的默认方法andThen

如果一个方法的参数和返回值全都是Consumer类型,那么就可以实现效果∶消费数据的时候,首先做一个操作,然后再做一个操作,实现组合。而这个方法就是Consumer:接口中的default方法 andThen 。下面是IDK的源代码∶

备注:ljava.util.objects的requineNonNull静态方法将会在参数为null时主动抛出NullPointerException异常。这省去了重复编写if语句和抛出空指针异常的麻烦。

  

要想实现组合,需要两个或多个Lambda表达式即可,而and Then的语义正是"一步接一步"操作。例如两个步骤组合的情况∶

package A_Lian_one.Demo22.Demo04Supplier;

import java.util.function.Consumer;

public class Demo02AndThen {
public static void main(String[] args) {
method("Hello",
(t) -> {
System.out.println(t.toUpperCase());
}, (t) -> {
System.out.println(t.toLowerCase());
} );
} public static void method(String s, Consumer<String> con1, Consumer<String> con2) {
con1.andThen(con2).accept(s);
// con1.accept(s);
// con2.accept(s);
}
}

最新文章

  1. HashSet HashTable HashMap的区别 及其Java集合介绍
  2. 在Cubieboard上关闭irqbalance服务避免内存泄漏
  3. 【Linux高频命令专题(10)】mv
  4. NSString / NSMutableString 字符串处理,常用代码 (实例)
  5. js中三目运算符和&amp;&amp; || 符的个人浅见
  6. java多线程系列(七)---Callable、Future和FutureTask
  7. Java 高级开发必修知识---反射
  8. LabView ModBus安装
  9. python爬虫第三天
  10. 理解 DocumentFragment
  11. JAVA注释的另一种神奇用法
  12. 《Python》 计算机基础
  13. 腾讯笔试题 构造回文(LCS问题)
  14. [Qt扒手2] PyQt5 路径绘画例子
  15. Django实战(15):Django实现RESTful web service
  16. 利用MailSniper越权访问Exchange邮箱
  17. CSS3 文本超出后显示省略号...
  18. 公众号js-sdk简
  19. mysql字符集的修改
  20. 上传组件uploadify在spring中返回406 / Not Acceptable 问题解决

热门文章

  1. 网络安全(一):信息收集之玩转nmap(理论篇)
  2. 从 Wepy 到 UniApp 变形记
  3. python中的浅拷贝,深拷贝
  4. 如何使用webgl(three.js)实现3D储能,3D储能站,3D智慧储能、储能柜的三维可视化解决方案——第十七课
  5. JAVA系列之类加载机制详解
  6. 2.mysql-库表行管理
  7. telnet 退出失败
  8. 基于python的数学建模---轮廓系数的确定
  9. Devexpress 图表显示数据标签
  10. 求10以内所有偶数和-Java