java回调函数主要分为4部分:
一、定义回调接口,和回调函数
public interface CallBackInter { public void sayHello(); } |
二、继承接口,实现回调函数
public class CallBackImpl implements CallBackInter { @Override public void sayHello() { System.out.println("接口CallBackInter的实现类CallBackImpl的sayHello方法"); } } |
public class CallBackClient { //回调接口的引用 private CallBackInter inter; //回调接口实例注入 public void setCallBackInter(CallBackInter inter) { this.inter = inter; } //回调函数的使用 public void callBack() { inter.sayHello(); } /************************************************也可以这样写,省略注入的步骤****************************************************************/ //回调接口的引用 |
四、测试
public class Test { public static void main(String[] args) { //实例化一个使用类 CallBackClient client = new CallBackClient(); //将实现回调函数的类注入到使用类中 client.setCallBackInter(new CallBackImpl()); //执行使用类中调用回调函数的方法 client.callBack(); } } 打印:接口CallBackInter的实现类CallBackImpl的sayHello方法 |
以上是一个同步回调函数,就是在等待回调函数执行完成之前不能做其他事情,但是我想在等待的时间做些其他的事情,即异步回调
public class CallBackImpl implements CallBackInter { @Override public void sayHello() { try { Thread.sleep(3000); //暂停3秒,模仿执行过程 } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("接口CallBackInter的实现类CallBackImpl的sayHello方法"); } } public class CallBackClient { } public class Test { 结果:在sayHello之前我唱了首歌 |