diff --git a/javaSE-day07/src/com/inmind/functional_interface02/Demo06.java b/javaSE-day07/src/com/inmind/functional_interface02/Demo06.java new file mode 100644 index 0000000..4fb4725 --- /dev/null +++ b/javaSE-day07/src/com/inmind/functional_interface02/Demo06.java @@ -0,0 +1,41 @@ +package com.inmind.functional_interface02; + +import java.util.function.Consumer; + +/* + 学习内容: + default Consumer andThen(Consumer after) 返回一个组成的 Consumer ,依次执行此操作,然后执行 after操作 + + 需求:我要使用消费者接口,对同一个字符串进行大写,和小写的消费操作 + 分析: + 1.一个消费者的消费操作:对字符串进行小写打印 + 2.另一个消费者的消费操作:对字符串进行大写打印 + */ +public class Demo06 { + public static void main(String[] args) { + String str = "aBcD"; + + print( + s1-> System.out.println(s1.toLowerCase()), + s2-> System.out.println(s2.toUpperCase()), + str + ); + } + + public static void print(Consumer consumer1, Consumer consumer2, String s) { + /*consumer1.accept(s); + consumer2.accept(s);*/ + + /* + andThen的源码: + default Consumer andThen(Consumer after) { + Objects.requireNonNull(after); + return (T t) -> { accept(t); after.accept(t); }; + } + + andThen:让多个消费者按顺序去消费同一个参数 + */ + consumer1.andThen(consumer2).andThen(consumer2).accept(s); + } + +}