进阶day06-Consumer的andThen方法

This commit is contained in:
2026-03-10 16:42:42 +08:00
parent 016426e963
commit 80a577d473

View File

@@ -0,0 +1,41 @@
package com.inmind.functional_interface02;
import java.util.function.Consumer;
/*
学习内容:
default Consumer<T> 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<String> consumer1, Consumer<String> consumer2, String s) {
/*consumer1.accept(s);
consumer2.accept(s);*/
/*
andThen的源码
default Consumer<T> andThen(Consumer<? super T> after) {
Objects.requireNonNull(after);
return (T t) -> { accept(t); after.accept(t); };
}
andThen:让多个消费者按顺序去消费同一个参数
*/
consumer1.andThen(consumer2).andThen(consumer2).accept(s);
}
}