From a07cd63cc7f183ead14e76405d8ba943b25b464b Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 14 Mar 2026 13:32:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E9=98=B6day06-Function=E4=B8=AD?= =?UTF-8?q?=E7=9A=84andThen=E6=96=B9=E6=B3=95(=E6=95=B4=E5=90=88=E5=B7=A5?= =?UTF-8?q?=E5=8E=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inmind/functional_interface02/Demo14.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 javaSE-day07/src/com/inmind/functional_interface02/Demo14.java diff --git a/javaSE-day07/src/com/inmind/functional_interface02/Demo14.java b/javaSE-day07/src/com/inmind/functional_interface02/Demo14.java new file mode 100644 index 0000000..78f025b --- /dev/null +++ b/javaSE-day07/src/com/inmind/functional_interface02/Demo14.java @@ -0,0 +1,39 @@ +package com.inmind.functional_interface02; + +import java.util.function.Function; + +/* + 学习内容:Function中的andThen方法 + + default Function andThen(Function after) 合并2个Function接口,生成一个新的,先执行this的apply方法,再执行after的apply方法 + default Function compose(Function before) 与以上的方法完全相反 + + 需求: + 1."10"->10 + 2.10->100 + 分析: + 1.一个Function 将"10" 转换成10 + 2.另一个Function 将10 转换成100 + + */ +public class Demo14 { + public static void main(String[] args) { + method( s->Integer.parseInt(s), + i->i*10 + ,"10" + ); + } + + //定义一个方法,接收2个数据工厂,1个数据原料,打印最终结果,不需要返回值 + public static void method(Function function1 ,Function function2,String s) { + /*Integer result1 = function1.apply(s); + Integer result2 = function2.apply(result1);*/ + /* Integer result2 = function2.apply(function1.apply(s)); + System.out.println(result2);*/ + + /*default Function andThen(Function after) 合并2个Function接口, + 生成一个新的,先执行this的apply方法,再执行after的apply方法*/ + + System.out.println(function1.andThen(function2).apply(s)); + } +}