Consumer接口是一个消费型接口,泛型指定什么类型,就可以使用accept消费什么类型数据

直接输出:

public class Demo {public static void main(String[] args) {method("asd",(name)-> System.out.println(name));}public static void method(String name, Consumer<String>con) {con.accept(name);}
}

反转输出:

public class Demo {public static void main(String[] args) {method("asd",(name)-> {String reName=new StringBuffer(name).reverse().toString();System.out.println(reName);});}public static void method(String name, Consumer<String>con) {con.accept(name);}
}

默认方法:andThen

如果一个方法的参数和返回值全都是Consumer类型,那么就可以实现效果:

消费数据的时候,首先做一个操作,然后再做一个操作,实现组合,而这个方法就是Consumer接口中的default方法andThen

常规写法:

public class Demo {public static void main(String[] args) {method("hello",(t)->{System.out.println(t.toLowerCase(Locale.ROOT));},(t)->{System.out.println(t.toUpperCase(Locale.ROOT));});}public static void method(String name, Consumer<String>con1,Consumer<String>con2) {con1.accept(name);con2.accept(name);}
}

andThen写法

public class Demo {public static void main(String[] args) {method("hello",(t)->{System.out.println(t.toLowerCase(Locale.ROOT));},(t)->{System.out.println(t.toUpperCase(Locale.ROOT));});}public static void method(String name, Consumer<String>con1,Consumer<String>con2) {con1.andThen(con2).accept(name);}
}

同理,3个接口可以用两个andThen

习题:有一个字符串数组,有姓名和性别,用两个Consumer接口输出

public class Demo {public static void main(String[] args) {String[]arr={"张三,男","李四,女"};method(arr,(m)->{String name=m.split(",")[0];System.out.print("姓名:"+name+" ");},(m)->{String male=m.split(",")[1];System.out.println("性别"+male);});}public static void method(String[] name, Consumer<String>con1,Consumer<String>con2) {for(String message:name){con1.andThen(con2).accept(message);}}
}

【java笔记】常用接口(2):Consumer接口相关推荐

  1. Java基础二十二:函数式接口介绍,函数式接口作为方法参数、返回值,Supplier接口、Consumer接口、Predicate接口、Function接口基本介绍及其案例小练习

    函数式接口 1. 函数式接口概念及基本使用 1.函数式接口:有且仅有一个抽象方法的接口,函数式接口就是Lambda表达式使用的前提 2. Java中的函数式编程体现的就是Lambda表达式,所以函数式 ...

  2. Java笔记整理五(Iterator接口,泛型,常见数据结构(栈,队列,数组,链表,红黑树,集合),jdk新特性,异常,多线程,Lambda表达式)

    Java笔记整理五 1.1Iterator接口 Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象 ...

  3. JAVA8之函数式编程Supplier接口和Consumer接口

    JAVA8之函数式编程Supplier接口和Consumer接口 一.    Supplier接口 顾名思义,这是一个供应商,提供者.就如一个工厂一样.该类的源码如下: package java.ut ...

  4. 9.1-全栈Java笔记: 容器泛型—认识Collection接口

    开发和学习中需要时刻和数据打交道,如果组织这些数据是我们编程中重要的内容. 我们一般通过"容器"来容纳和管理数据.   事实上,数组就是一种容器,可以在其中放置对象或基本类型数据. ...

  5. java8 supplier_Java8 Supplier接口和Consumer接口原理解析

    Supplier接口 package java.util.function; /** * Represents a supplier of results. * * There is no requi ...

  6. 10.4-全栈Java笔记:常用流详解(二)

    上节我们讲到「Java中常用流:文件字节流和字节数组流」,本节我们继续走起~  缓冲流 BufferedInputStream和BufferedOutputStream这两个流是处理流,通过内部缓存数 ...

  7. 【Java笔记】集合(Collection接口)的使用

    面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.使用 Array 存储对象方面具有一些弊端,而 Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中 ...

  8. Java笔记-常用类String

    常用类String 在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. String 创建的字符串存储在公共池中. import java.util.Arrays; ...

  9. JAVA笔记-常用操作

    一.使用String.format()格式化字符串 1:介绍         String类的format()方法用来创建格式化的字符串或者连接多个字符串对象     2:使用         Str ...

  10. 函数式接口 BiConsumer接口和Consumer接口

    BiConsumer定义了两个泛型类型T和R,分别做为accept()方法的参数类型,BiConsumer支持2个参数. 1.void accept(T t, U u);方法 自定义IBiConsum ...

最新文章

  1. AI来了,服务器市场要变天?
  2. 写文件 —— 将内容按照指定格式写入配置文件(fwrite()函数-》》向指定的文件中写入若干数据块)
  3. hao123电脑版主页_生活小技巧003:电脑主页被恶意篡改怎么办?
  4. CodeForces 1361E James and the Chase(dfs + 结论)
  5. org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI
  6. 同步设备IO与异步设备IO
  7. hadoop之MapReduce的案例(多表关联)
  8. pycharm写python字典_pycharm_字典
  9. tcp连接时,BROKEN PIPE错误的原因以及解决方法
  10. 华为抓取错误日志在哪里_分析Spider抓取情况和SEO优化
  11. button执行onclick函数_【JavaScript】函数
  12. 大数据分析师应掌握哪种编程语言
  13. 2022年java学习路线指南
  14. 2020年C题认证杯SEIR模型参数拟合
  15. IMO A.688(16) 寝具用品点燃性测试
  16. 计算机管理 灰色,详解电脑任务管理器变成灰色不可用的解决方法
  17. centos ping 路由_centos服务器怎么ping命令
  18. date月份加一_delphi 年月日自动加一减一函数,月加一,月减一
  19. A002-185-1203
  20. QGIS与网易有道词典冲突

热门文章

  1. siblings() 获得匹配集合中每个元素的同胞,通过选择器进行筛选是可选的。
  2. Castle 开发系列文章
  3. Bailian2950 摘花生【贪心】
  4. HDU1066 Last non-zero Digit in N!【大数+模除】
  5. JSK-24 函数规律【基础】
  6. jQuery AJAX 与 jQuery 事件
  7. 从球面几何到非欧几何
  8. 斐波那契数列与黄金分割比以及矩阵形式推导
  9. python varchar_在python中声明varchar
  10. relu函数_【AI初识境】激活函数:从人工设计(sigmoid,relu)到自动搜索(swish)