您的位置:首页 > 编程语言 > Java开发

java 回调

2016-05-07 18:46 447 查看
回调 :

           1、定义一个接口,里面写入方法用于从线程中获取返回信息

           2、开启一个线程,将任务给Employee,在Employee中有一个方法含有两个参数 

                Ⅰ、实现了该接口的实例, Ⅱ、任务         Boss-->Employee(携带boss给employee的任务) 

           3、在Employee中通过方法参数传入的实例调用回调方法将信息返还给Boss        

                 Employee-->Boss(返回任务完成的结果)

  

  输出结果:  boss发布的任务是: 这批文件处理一下

                     任务是否完成:successful

代码:

[java] view
plain copy

 





package d;  

  

import java.util.concurrent.TimeUnit;  

  

/**  

 * 回调 :  

 *  1、定义一个接口,里面写入方法用于从线程中获取返回信息  

 *  2、开启一个线程,将任务给Employee,在Employee中有一个方法含有两个参数   

 *    Ⅰ、实现了该接口的实例, Ⅱ、任务         Boss-->Employee(携带boss给employee的任务)   

 *  3、在Employee中通过方法参数传入的实例调用回调方法将信息返还给Boss          

 *     Employee-->Boss(返回任务完成的结果)  

 *   

 * 输出结果:  boss发布的任务是: 这批文件处理一下  

[java] view
plain copy

 





             任务是否完成:successful  

 *   

 * @author he  

 *  

 */  

// 用于回调的接口  

interface callBack {  

    // 该方法用于回调  

    public void back(String msg);  

}  

  

class Boss implements callBack {  

    private Employee employee;  

  

    public Boss(Employee employee) {  

        this.employee = employee;  

    }  

  

    // 向employee发送任务  

    public void sendTask(final String task) {  

        new Thread(new Runnable() {  

            public void run() {  

                // employee从boss手中获取任务  

                employee.getTask(Boss.this, task);  

            }  

        }).start();  

    }  

  

    // 获取employee完成的结果  

    public void back(String msg) {  

        System.out.println("任务是否完成:" + msg);  

    }  

  

}  

  

class Employee {  

    // 从上一层获取任务 ,即 从boss获取要执行的任务  

    public void getTask(callBack boss, String task) {  

        System.out.println("boss发布的任务是: " + task);  

        try {  

            // 模拟完成任务所需要的时间  

            TimeUnit.MILLISECONDS.sleep(5);  

        } catch (InterruptedException e) {  

            e.printStackTrace();  

        }  

        // 将结果返回给boss  

        boss.back("successful");  

    }  

}  

  

public class Test {  

    public static void main(String[] args) {  

        Employee employee = new Employee();  

        Boss boss = new Boss(employee);  

        boss.sendTask("这批文件处理一下");  

    }  

}  

原文地址:http://www.bysocket.com/?p=636

                  http://blog.csdn.net/xiaanming/article/details/8703708

http://blog.csdn.net/xiaanming/article/details/8703708

http://blog.csdn.net/pi9nc/article/details/23169357
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: