如果一个方法的参数和返回值都是Consumer类,那么就可以实现效果:消费的数据的时候,首先做一个操作,然后
在做一个操作,实现组合。而这个方法就是Consumer 接口中的default方法andThen 。下面是JDK的源代码
备注:java.util.Objects 的requireNonNull 静态方法将会在参数为null时主动抛出NullPointerException 异常。这省去了重复编写if语句和抛出空指针异常的麻烦。
实现:
public static void method(String s, Consumer<String> con1, Consumer<String> con2){ // con1.accept(s); // con2.accept(s); con1.andThen(con2).accept(s); } public static void main(String[] args) { method("Hello", (t)-> { System.out.println(t.toUpperCase()); }, (t)->{ System.out.println(t.toLowerCase()); }); }
常用函数式接口_Consumer接口练习_字符串拼接输出
下面的字符串数组当中存有多条信息,请将格式姓名:xx,性别:xx,的格式将信息打印出来
要求打印姓名的动作作为第一个Consumer接口的Lambda实例将打印的性别作为第二个Consumer接口实例
将两个Consumer接口按照顺序进行拼接到一起
实现:
public static void printInfo(String[] arr, Consumer<String> con1, Consumer<String> con2) { for (String message : arr) { con1.andThen(con2).accept(message); } } public static void main(String[] args) { String[] arr = { "迪丽热巴,女", "古力娜扎,女", "马尔扎哈,男" }; printInfo(arr, (message) -> { String name = message.split(",")[0]; System.out.print("姓名:" + name); }, (message) -> { String age = message.split(",")[1]; System.out.println("。年龄" + age + "。"); }); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)