标签:nts err 过程 back 直接 str test 有一个 例子
1 package com.jsnh.callback; 2 3 /** 4 * 回调接口 5 * 6 */ 7 public interface CallbackStatistics { 8 public void Sales_Statistics(int number); 9 }
结果反馈给boss,在boss对象中实现CallbackStatistics 接口:
1 /** 2 * Boss对象 3 */ 4 public class Boss implements CallbackStatistics{ 5 6 private Staff staff; 7 8 public Boss(Staff staff) { 9 this.staff = staff; 10 } 11 12 public void askStatistics() { 13 new Thread(new Runnable() { 14 15 @Override 16 public void run() { 17 staff.queryStaStatistics(Boss.this); 18 } 19 }).start(); 20 System.out.println("异步回调处理完成"); 21 } 22 23 @Override 24 public void Sales_Statistics(int number) { 25 System.out.println("Lisan你反馈给我的统计是:" + number ); 26 } 27 }
askStatistics()相当于分派给员工的任务,开启一个线程实现异步回调;Sales_Statistics(int number)员工反馈给boss结果后,boss要做的事情。
1 /** 2 * 员工接口 3 */ 4 public interface Staff { 5 6 public void queryStaStatistics(CallbackStatistics callbackStatistics); 7 8 }
定义一个具体员工实现类:
1 /** 2 * Lisan完成了boss的工作任务 3 */ 4 public class Lisan implements Staff{ 5 6 @Override 7 public void queryStaStatistics(CallbackStatistics callbackStatistics) { 8 //模拟查询 9 int phoneCount = 0; 10 try { 11 Thread.sleep(5000); 12 phoneCount = 10000; 13 } catch (InterruptedException e) { 14 e.printStackTrace(); 15 } 16 //向boss报告查询结果 17 callbackStatistics.Sales_Statistics(phoneCount); 18 } 19 }
测试类,验证结果:
1 /** 2 * 回调测试类 3 */ 4 public class CallbackStatisticsTest { 5 6 public static void main(String[] args) { 7 Staff staff = new Lisan(); 8 Boss boss = new Boss(staff); 9 boss.askStatistics(); 10 } 11 12 }
运行结果:
异步回调处理完成
Lisan你反馈给我的统计是:10000
参考:https://www.cnblogs.com/xrq730/p/6424471.html
标签:nts err 过程 back 直接 str test 有一个 例子
原文地址:https://www.cnblogs.com/jsnhdream/p/9195092.html