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

3分钟理解完java中的回调函数

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

3分钟理解完java中的回调函数

定义

         函数A执行时需要先给它传递函数B, 好在合适的时候调用, 以完成函数A. 这个被传入的函数B被称为回调函数(Callback function).

如何理解

        在调用库中某些预先备好的目标函数时, 需要先给该函数传递另一个函数, 让库中的目标函数在合适的时候, 去调用传给它函数来完成目标函数.

打个比方
        假如你去一家餐厅吃饭, 你告诉服务员说你要吃饭, 然后她会让你对着菜单点菜, 你点完菜后她就会陆续地将才给你上来. 
        你要吃饭的行为就相当于库中的目标函数(通常称之为中间函数), 但进行这个行为前, 你需要告诉服务员你要点什么,  点什么菜是由你决定的, 点菜的这个行为也就是回调函数.

与函数间调用不同的是: 
        中间函数在接收一个回调函数前是不完整的;
        通过实回调函数实现的不同,可以改变中间函数的行为, 所以它非常灵活

如何使用回调函数

1. 首先定义一个回调函数的接口, 方便回调函数能根据业务的不同,实现不同的实例.

public interface CallbackInterface {

    
    boolean process(String param);

}

 2.  定义中间函数, 并在中间函数中调用回调函数. 中间函数时你直接使用的函数, 你只是在该函数中调用了你定义的回调函数, 它和普通函数没有什么区别.

@Data
public class Huzz {
    
    public String execute(CallbackInterface callbackInterface){
        System.out.println("before: 中间函数的内容");
        boolean result = callbackInterface.process("TEST");
        System.out.println("after: 中间函数的内容");
        return result ? "相同": "不相等";

    }


}

3. 使用回调函数.

public static void main(String[] args) {
        
        Huzz huzz = new Huzz();

        
        String result = huzz.execute(param -> {
            System.out.println("RUN");
            if ("TEST".equals(param)) {
                return true;
            }
            return false;
            
        });
        
        huzz.execute(new CallbackInterface() {
            @Override
            public boolean process(String param) {
                if (param.length() == 4) {
                    return true;
                }
                return false;
            }
        });
        
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462276.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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