java 回调

来源:互联网 发布:淘宝多琳香水是正品么 编辑:程序博客网 时间:2024/06/05 03:29

回调 :

           1、定义一个接口,里面写入方法用于从线程中获取返回信息
           2、开启一个线程,将任务给Employee,在Employee中有一个方法含有两个参数 
                Ⅰ、实现了该接口的实例, Ⅱ、任务         Boss-->Employee(携带boss给employee的任务) 
           3、在Employee中通过方法参数传入的实例调用回调方法将信息返还给Boss        
                 Employee-->Boss(返回任务完成的结果)
  
  输出结果:  boss发布的任务是: 这批文件处理一下
                     任务是否完成:successful

代码:

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. package d;  
  2.   
  3. import java.util.concurrent.TimeUnit;  
  4.   
  5. /**  
  6.  * 回调 :  
  7.  *  1、定义一个接口,里面写入方法用于从线程中获取返回信息  
  8.  *  2、开启一个线程,将任务给Employee,在Employee中有一个方法含有两个参数   
  9.  *    Ⅰ、实现了该接口的实例, Ⅱ、任务         Boss-->Employee(携带boss给employee的任务)   
  10.  *  3、在Employee中通过方法参数传入的实例调用回调方法将信息返还给Boss          
  11.  *     Employee-->Boss(返回任务完成的结果)  
  12.  *   
  13.  * 输出结果:  boss发布的任务是: 这批文件处理一下  
[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1.              任务是否完成:successful  
  2.  *   
  3.  * @author he  
  4.  *  
  5.  */  
  6. // 用于回调的接口  
  7. interface callBack {  
  8.     // 该方法用于回调  
  9.     public void back(String msg);  
  10. }  
  11.   
  12. class Boss implements callBack {  
  13.     private Employee employee;  
  14.   
  15.     public Boss(Employee employee) {  
  16.         this.employee = employee;  
  17.     }  
  18.   
  19.     // 向employee发送任务  
  20.     public void sendTask(final String task) {  
  21.         new Thread(new Runnable() {  
  22.             public void run() {  
  23.                 // employee从boss手中获取任务  
  24.                 employee.getTask(Boss.this, task);  
  25.             }  
  26.         }).start();  
  27.     }  
  28.   
  29.     // 获取employee完成的结果  
  30.     public void back(String msg) {  
  31.         System.out.println("任务是否完成:" + msg);  
  32.     }  
  33.   
  34. }  
  35.   
  36. class Employee {  
  37.     // 从上一层获取任务 ,即 从boss获取要执行的任务  
  38.     public void getTask(callBack boss, String task) {  
  39.         System.out.println("boss发布的任务是: " + task);  
  40.         try {  
  41.             // 模拟完成任务所需要的时间  
  42.             TimeUnit.MILLISECONDS.sleep(5);  
  43.         } catch (InterruptedException e) {  
  44.             e.printStackTrace();  
  45.         }  
  46.         // 将结果返回给boss  
  47.         boss.back("successful");  
  48.     }  
  49. }  
  50.   
  51. public class Test {  
  52.     public static void main(String[] args) {  
  53.         Employee employee = new Employee();  
  54.         Boss boss = new Boss(employee);  
  55.         boss.sendTask("这批文件处理一下");  
  56.     }  
  57. }  

    原文地址: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

0 0
原创粉丝点击