常用的函数式接口_Consumer接口的默认方法andThen:
Consumer接口的默认方法andThen
作用:需要两个Consumer接口,可以把两个Consumer接口组合到一起,在对数据进行消费
例如:
Consumer<String> con1
Consumer<String> con2
String s = "Hello";
con1.accept(s);
con2.accept(s);
连接两个Consumer接口 再进行消费
con1.andThen(con2).accept(s); 谁写前边谁先消费
public static void method(String s, Consumer<String> con1,Consumer<String> con2){ //con1.accept(s) //con2.accept(s) //使用andThen方法,把两个Consumer接口连到一起,在消费数据 con1.andThen(con2).accept(s);//con1连接con2,先执行con1消费数据,在执行con2消费数据 } public static void main(String[] args) { //调用method方法,传递一个字符串,两个Lambda表达式 method("Hello", (t)->{ //消费方式:把字符串转换为大写输出 System.out.println(t.toUpperCase()); }, (t)->{ //消费方式:把字符串转换为小写输出 System.out.println(t.toLowerCase()); });
常用的函数式接口_Consumer接口练习_子符串拼接输出:
练习:字符串数组当中存有多条信息,请按照格式“姓名”:XX。的格式将信息打印出来
要求将打印姓名的动作作为一个Consumer接口的Lambda实例,
将打印性别的动作作为第二个Consumer接口的Lambda实例,
将两个Consumer接口按照顺序拼接到一起
//定义一个方法,参数传递String类型的数组和两个Consumer接口,泛型使用String public static void printInfo(String[] arr, Consumer<String> con1,Consumer<String> con2){ //遍历字符串数组 for (String message : arr){ //使用andThen方法连接两个Consumer接口,消费字符串 con1.andThen(con2).accept(message); } public static void main(String[] args) { //定义一个字符串类型的数组 String[] arr = {"摩斯,男","死神,男","神伤,女"}; //调用printInfo方法,传递一个字符串数组,和两个Lambda表达式 printInfo(arr,(message)->{ //消费方式:对message进行切割,获取姓名,按照指定的格式输出 String name = message.split(",")[0]; System.out.println("姓名:"+name); },(message)->{ //消费方式:对message进行切割,获取年龄,按照指定的格式输出 String age = message.split(",")[1]; System.out.println("。年龄:"+age+"。"); });
标签:con1,con2,函数,andThen,接口,Consumer,String From: https://www.cnblogs.com/hungui/p/16733403.html