函数式接口之方法作为参数
本文共 1,283 字,预计阅读时间 4 分钟
在现实开发中,肯定会遇到这样一种情况,有几个业务场景,里面的大部分业务逻辑都一样,只有某些逻辑不同,而这些不同的逻辑又依赖于前面的逻辑,你会选择写重复代码去实现还是选择抽取公共方法,对那些不同的逻辑做单独处理?是不是理解起来比较抽象,简单就一句话,怎么把方法作为参数调用另一个方法,那就需要使用函数式接口了,最合适的莫过于@FunctionalInterface
注解 。
首先定义一个函数式接口,加上注解,定义一个方法和需要的参数
package com.zxh; @FunctionalInterface public interface MyFunction { void execute(int a, int b, String message); }
然后定义公共的方法,用于接收方法参数,来处理不同的逻辑
public static void dealwithData(Integer a, Integer b, String s, MyFunction method) { Integer pageCount = 3; for (int i = 1; i <= pageCount; i++) { method.execute(a, b, s); } }
例如上述,定义了一个方法,模拟分页去执行传入的方法的业务逻辑
在需要调用的地方传参进行自定义的逻辑
public static void add(Integer a, Integer b, String s){ System.out.println(a + b + "-" + s); } public static void del(Integer a, Integer b, String s){ System.out.println(a + "-" + b + "-" + s); } public static void main(String[] args) { //加法的场景 dealwithData(1, 2, "hello", (a, b, s) -> { add(a, b, s); }); //拼接的场景 dealwithData(1, 2, "hello", (a, b, s) -> { del(a, b, s); }); }
上述定义了两个方法(方法内的业务逻辑不同),然后在main方法的不同场景中调用不同的方法
那么就可以很好的实现方法的封装,减少代码的冗余。
必须要有公共方法封装的思想,提高代码的健壮性
就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2021-12-19 InputStream类available和read方法读取流数据不全?