From 80a577d473819ee295886e72d966571d7d0eedbb Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Tue, 10 Mar 2026 16:42:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E9=98=B6day06-Consumer=E7=9A=84andThe?= =?UTF-8?q?n=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inmind/functional_interface02/Demo06.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 javaSE-day07/src/com/inmind/functional_interface02/Demo06.java 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); + } + +}