怎么写 Java 回调函数
2022/6/30 14:22:42
本文主要是介绍怎么写 Java 回调函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JavaScript 中的回调函数
回调函数在 JavaScript 中经常用到,回调函数可以提升我们这一个函数的重用率,降低代码冗余的问题。
JavaScript 定义回调函数简单,在函数中的参数里面直接添加一个函数,函数拿到这个变量之后加上小括号即可执行函数:
// 定义函数,第二个参数是回调函数,回调函数接收一个参数 function write(something, callable) { callable("Hello Callable"); } // 使用函数,第二个回调函数接收参数,打印其参数 write('eat bread', function (s) { console.log(s); })
在回调函数内,除了write
函数本身应该做的固定任务以外,回调函数里面可以根据业务不同实现不同的任务,这样就可以提升我们函数的重用率,也降低了代码冗余的问题。
Java 中的回调函数
Java 也是有回调函数的,回调函数的定义和好处跟 JavaScript 的回调函数一样。Java 定义回调函数可能有点“复杂”。
回调函数本身就允许我们程序员根据业务不同需求来,所以,在 Java 中接口就是非常适合作为回调函数的承担者。接口的函数需要我们去“实现”,也就是这个实现可以根据我们使用场景自定义。
我通过一个 I/O 流实现回调函数使用的案例:
定义回调函数接口
interface WriteTextCallable { void append(FileWriter fw); }
调用回调函数
public class WriteText { public void write(String filename, WriteTextCallable writeTextCallable) { FileWriter fw; try { fw = new FileWriter(filename, true); writeTextCallable.append(fw); fw.flush(); fw.close(); } catch (IOException e) { throw new RuntimeException(e); } } }
除了writeTextCallable.append(fw);
要实现实际给文件写入内容以外,其他代码都是固定的,无非就是打开输出流,关闭输出流的操作。只有写入的内容,根据业务场景,发生变化而已,所以在这里使用回调函数代替执行,而不影响我们的固定操作。
测试回调函数
public static void main(String[] args) { WriteText wt = new WriteText(); wt.write("E:\\Common\\Document\\Person\\fw.txt", fw -> { try { fw.write("\n"); fw.write("时间:" + new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒").format(new Date())); fw.write("\n"); fw.write("事情:打豆豆"); fw.write("\n"); fw.write("-----------------"); } catch (IOException e) { throw new RuntimeException(e); } }); }
这篇关于怎么写 Java 回调函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-0601-电商商品中心解密:仅凭SKU真的足够吗?
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能