Consumer接口

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

抽象方法:accept

Consumer接口中包含抽象方法void accept(T t),意为消费一个执行的数据。

使用:

package com.yang.Test.ConsumerStudy;

import java.util.function.Consumer;

/**
* java.util.function.Consumer<T>接口则正好与Supplier接口相反
* 它不是生产一个数据,而是消费一个数据,其数据类型由泛型指定
* Consumer接口中包含抽象方法void accept(T t),意为消费一个指定泛型的数据。
* Consumer接口是一个消费性接口,泛型执行什么类型,就可以使用accept方法消费什么类型的数据
* 至于怎么消费(使用),需要自定义(输出、计算....)
*/
public class Study01 {
/**
* 定义一个方法
* 方法的参数传递一个字符串的姓名
* 方法的参数传递Consumer接口,泛型使用String
* 可以使用Consumer接口消费字符串中的姓名
*/
private static void method(String name, Consumer<String> consumer){
consumer.accept(name);
} public static void main(String[] args) {
//调用method方法,传递一个姓名字符串和Consumer
method("赵丽颖",s -> {
//对传递的字符串进行消费
//消费方式:直接输出
System.out.println(s); //消费方式:把字符串进行反转输出
StringBuilder stringBuilder = new StringBuilder(s);
StringBuilder reverse = stringBuilder.reverse();
System.out.println(reverse);
});
}
}

常用的函数式接口_Consumer接口的默认方法andThen

package com.yang.Test.ConsumerStudy;

import java.util.Locale;
import java.util.function.Consumer; /**
* Consumer接口的默认方法andThen
* 作用:需要两个Consumer接口,可以把两个Consumer接口组合到一起,对数据进行消费
*
* 例如:
* Consumer<String> con1
* Consumer<String> con2
* String str = "hello";
* con1.accept(s);
* con2.accept(s);
* andThen连接两个Consumer 再进行消费
* 谁写在前面谁先消费
* con1.andThen(con2).accept(str);
*/
public class Study02 {
//定义一个方法方法的参数传递一个字符串和两个Consumer接口,Consumer接口的泛型也是用字符串
public static void method(String str, Consumer<String> con1, Consumer<String> con2) {
// con1.accept(str);
// con2.accept(str);
//使用andThen方法把两个Consumer接口连接到一起再进行消费
con1.andThen(con2).accept(str);
} public static void main(String[] args) {
/* //调用method方法,传递一个字符串和两个Lambda表达式
method("hello", s -> {
//消费方式:把字符串转换为大写输出
System.out.println(s.toUpperCase());
}, s -> {
//消费方式:把字符串转换为小写
System.out.println(s.toLowerCase());
});*/
method("abcde",s -> System.out.println(s.toLowerCase()),s -> System.out.println(s.toUpperCase()));
}
}

最新文章

  1. ecshop 团购-》调取评论
  2. &quot;浅谈Android&quot;第一篇:Android系统简介
  3. C# JSON字符串序列化与反序列化常见模型举例
  4. 纯CSS气泡框实现方法探究
  5. (6)妈的终于找到能用的nehe sdk了
  6. 《面试题精选》15.O(logn)求Fibonacci数列
  7. 行变列 拼接字符串 MSSQL 一个超级搞的问题
  8. Python进阶之闭包
  9. Node软件的安装
  10. python 产生token及token验证
  11. 银联支付Java开发
  12. JavaScript 基础篇1
  13. win server 2008添加磁盘-脱机转换为联机状态方法
  14. sprint boot 配置
  15. 7.18 进程池方式的 socket
  16. hdu-1129(模拟题)
  17. php rabbitmq的扩展
  18. mac sublime切换编辑语言的方法(添加其他版本的python)
  19. 20155202 2016-2017-2 《Java程序设计》第1周学习总结
  20. JAMon监控SQL执行时间

热门文章

  1. JS 加载
  2. vscode编写的程序中文乱码怎么办?
  3. 零基础学Java第五节(面向对象一)
  4. Cocos---大作业:简单H5小游戏
  5. 120_PowerBI堆积瀑布图_R脚本Visual
  6. spring 配置文件 --bean
  7. github新项目npm错误
  8. Datax源码改造关键步骤记录
  9. Eureka入门
  10. node.js 创建 wss服务