java回调函数

简介: java回调函数

1.背景

举个例子有个程序员和一个项目经理,XX项目经理向程序员安排任务让程序员去完成,程序员获得任务并记下是XX项目经理安排的任务,程序员将任务完成后,获取通知XX项目经理的方式,发送一条信息通知项目经理任务已经完成。

2.实现

新建一个项目经理类:

public class ProjectManager {
    private String name;
    public ProjectManager(String name)
    {
         this.name =name;
    }
    public String getName()
    {
        return this.name;
    }
    /**
     * 通知方法
     * @param msg
     */
    public void noticeMe(String msg)
    {
        System.err.println(msg);
    }
    /**
     * 安排任务
     * @param task
     */
    public void arrange(String task)
    {
        //安排程序员干活
        new Programmer().receiveTask(task, this);
    }
    public void doOtherWork()
    {
        System.err.println("项目经理干其他事情...");
    }
}

新建一个程序员类:

import java.util.concurrent.TimeUnit;
public class Programmer {
    //记下是XX项目经理,而不是其他项目经理
    ProjectManager manager;
    /**程序员接受任务*/
    public void receiveTask(String task,ProjectManager manager)
    {
        this.manager = manager;
        try {
            //程序员开始执行任务
            this.excuteTask(task);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    /**执行任务*/
    private void excuteTask(String task) throws InterruptedException
    {
        System.err.println("执行项目经理:"+manager.getName()+"安排的任务-->"+task);
        //任务执行中
        TimeUnit.SECONDS.sleep(1);
        //任务完成
        this.finished(task);
    }
    /**任务完成*/
    public void finished(String task)
    {
        //获取通知项目经理的方法,并发出通知
        //进行函数回调,这里还不算真正的回调
        manager.noticeMe(manager.getName()+"你好,你安排的任务"+task+"已经完成!");
    }
}

 

测试

public class CallbackTest {
    /**
     * @param args
     */
    public static void main(String[] args) {
        ProjectManager prjMgr = new ProjectManager("王响");
        prjMgr.arrange("今晚完成数据库设计...");
        prjMgr.doOtherWork();
    }
}

参考:

https://www.cnblogs.com/cxchanpin/p/6791696.html


相关文章
|
2月前
|
JavaScript 前端开发 Java
Java Script中的回调函数,可以用来做什么
Java Script中的回调函数,可以用来做什么
10 0
|
10月前
|
Java
什么是java回调函数
什么是java回调函数
111 1
什么是java回调函数
|
10月前
|
Java
java中的回调函数
java中的回调函数
|
12月前
java_回调函数Callback
分为了三种回调函数,从简单到难,也挺好理解
99 0
JAVA回调函数简单讲解 CallBack
JAVA回调函数简单讲解 CallBack
372 0
JAVA回调函数简单讲解 CallBack
|
Java 设计模式
Java匿名内部类与回调函数
    之所以将匿名内部类和回调函数两个知识点一起写,是因为最近学习zookeeper的时候正好遇到这么一个例子。详细内容请参考:https://www.w3cschool.cn/zookeeper/zookeeper_api.html 以下是与ZooKeeper集合连接的完整代码。
6126 0
|
Java C#
java在子线程与主线程传递数据(回调函数)
java在子线程与主线程传递数据 1.代码中用到的类介绍 C:拥有两个方法分别是设置value和获得value,拥有一个私有变量value。 MyThread:子线程 THread:主线程 2.功能说明 在主线程中对类C的实例c的value进行设置,然后输出c.value 开启子线程,通过构造函数传入C的实例c,在子线程中改变c.value的值 子线程中调用主线程的静态方法
3242 0
|
Java 程序员 容器
java回调函数
    在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就称为回调。     在Java里面,我们使用接口来实现回调。     所谓的回调,就是程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法
1527 0
|
Java 数据格式 XML
Java中回调函数编写
package XXX.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import org.xmlpull.v1.XmlSerializer; import android.app.ProgressDialog; import android.con
1069 0