栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java回调函数 (复习整理和反思)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java回调函数 (复习整理和反思)

Java回调函数 定义

回调是一种双向的模式,例如A调用B方法,B在执行完成之后又调用A方法。

在C和C++中,回调函数是一个通过函数指针调用的函数。如果你把函数的地址当作参数传递给另一个函数时,另一个函数来调用这个指针地址所指向的函数,这就叫回调函数

案例和场景
public static void main(String[] args) {
    new TestJob().doTest(()->{
        System.out.println("这里的代码等着你来回调我");
    });
}
public class TestJob {
    public void doTest(Callaback callaback) {
        for (int i = 0; i < 10; i++) {
            System.out.println("do something...");
        }

        // 核心代码,回调
        callaback.execute();

        for (int i = 0; i < 10; i++) {
            System.out.println("do something...");
        }
    }
}
public interface Callaback {

    void execute();
}
总结

从上面案例场景可以看到,lambda表达式、匿名内部类和回调函数,这三者实际上是本质相同,不同的角度面而已。

  • 对于匿名内部类来说
    • java 8之前,不支持lambda表达式,只能传一个对象过去。有的类只需要构建一次,后面不会使用。因此创建一个匿名内部类,构建一个没有名字的对象传过去。
  • 对于回调函数
    • 在C和C++中,函数是可以通过指针进行直接调用的。因此,直接将一个指针传递过去,让调用的函数在需要时,通过指针来调用即可。
  • 对于lambda表达式
    • lambda属于一种简写,本身属于匿名内部类的另一种形势。由于lambda表达式是一个方法的实现,因此形参必须是只有一个方法的接口
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/425158.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号