Java回调机制如何理解?

Wesley13
• 阅读 696

首先,参考一下众多文章中,把接口回调讲得比较浅显易懂的两篇文章:

浅谈Java回调机制 2016-04-09 wa_lid 阿里百川

Java帝国之拨云见日识回调 原创 2017-01-05 王钦誉 码农翻身

举个例子

网友提供的一些例子,虽然接地气,但是,不够专业,还是欣叔的例子好一些,把代码取出来,原理讲解移步<码农翻身>公众号。

public class XiaoZhang implements IFileIoCallback {
    
    public void saveStr(){
        String fileName = "callback.txt";
        String str = "this is a callback demo.";
        FileIO fileIO = new FileIO();
        fileIO.saveStrToFile(fileName,str,this);
    }

    @Override
    public void onResult(boolean isSave) {
        System.out.println(isSave ? "success" : "fail" );
    }
}


public class FileIO {

    public void saveStrToFile(String fileName, String content, final IFileIoCallback callback){
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    //write str to file...
                    callback.onResult(true);
                }catch (Exception e){
                    e.printStackTrace();
                    callback.onResult(false);
                }
            }
        }).start();
    }
}



public interface IFileIoCallback {
    void onResult(boolean isSave);
}
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
ROS回调函数传参
ROS编程过程中遇到不少需要给回调函数传递多个参数的情况,下面总结一下,传参的方法:一、回调函数仅含单个参数voidchatterCallback(conststd_msgs::String::ConstPtr&msg){ROS_INFO("Iheard:%s",msg
晴空闲云 晴空闲云
3年前
JavaScript中MutationObServer监听DOM元素详解
DOM的MutationObServer接口,可以在DOM被修改时异步执行回调函数,我的理解就是可以监听DOM修改。基本使用可以通过MutationObserver构造函数实例化,参数是一个回调函数。jsletobservernewMutationObserver(()console.log("change"));console.log(obs
灯灯灯灯 灯灯灯灯
3年前
JAVA回调机制(CallBack)之小红是怎样买到房子的??
JAVA回调机制CallBack序言最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义。当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题。但是,对于初学的我来说,缺了一个循序渐进的过程。此处,将我对回调机制的个人理解,按
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
thinkcmf+jsapi 实现微信支付
首先从小程序端接收订单号、金额等参数,然后后台进行统一下单,把微信支付的订单号返回,在把订单号发送给前台,前台拉起支付,返回参数后更改支付状态。。。回调publicfunctionnotify(){$wechatDb::name('wechat')where('status',1)find();
菜园前端 菜园前端
1年前
什么是回调函数?
原文链接:什么是回调函数?简单的来说,一个函数作为另外一个函数的参数,可以称为回调函数。这个理解其实不完全对,回调的意义根本没有体现出来,何为回调?也就是说一个函数你定义了,你没有马上的去调用它,而是交给了另外一个函数去调用,这才属于回调函数。缺点直接使用
Stella981 Stella981
3年前
ChromiumWebBrowser [链接]
1.谷歌出品,必属精品——嵌入式Chromium框架(cef)(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.shixunwang.net%2Farticle%2F806721908256%2F)   Cefsharp使用教程四(js回调,C方法)(https:/
Wesley13 Wesley13
3年前
Java Web(九)
Listener&FilterListener  监听器1、能做什么事?  监听某一个事件的发生。状态的改变。2、监听器的内部机制  其实就是接口回调.接口回调1、需求:  A在执行循环,当循环到5的时候,通知B。 
Stella981 Stella981
3年前
JavaScript回调函数的高手指南
摘要:本文将会解释回调函数的概念,同时帮你区分两种回调:同步和异步。回调函数是每个前端程序员都应该知道的概念之一。回调可用于数组、计时器函数、promise、事件处理中。本文将会解释回调函数的概念,同时帮你区分两种回调:同步和异步。1.回调函数首先写一个向人打招呼的函数。只需要创建一个接受name参数的函数gree
Wesley13 Wesley13
3年前
Java回调机制分析
Java回调是一种双向调用模式,什么意思呢,就是说,被调用方在被调用时也会调用对方,这就叫回调。“Ifyoucallme,iwillcallback”。不理解?没关系,先看看这个可以说比较经典的使用回调的方式:classA实现接口InA——背景1classA中包含一个classB