JAVA中的回调通过接口,让被回调的类实现一个接口,并在需要激发回调类的时候把自己传送过去。
具体代码示例如下:
package com.test;
public class CallBackTest {
public static void main(String[] args) {
new AClass().doBClass();
}
}
/**
* 回调别人的类
* @author wry
*
*/
class BClass{
CallBack callBack;
public BClass(CallBack callBack){
System.out.println("BClass--------------");
this.callBack = callBack;
new Thread(r).start();
}
Runnable r = new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
} catch (Exception e) {
e.printStackTrace();
}
callBack.CallBackMethod();
System.out.println(callBack);
}
};
}
/**
* 被回调的类
* @author wry
*
*/
class AClass implements CallBack{
public AClass() {
System.out.println("AClass--------------");
}
@Override
public void CallBackMethod() {
System.out.println("CallBackMethod called--------------");
}
public void doBClass(){
/**
* 把this传给BCLASS,让其调用
*/
new BClass(this);
System.out.println(this);
}
}
interface CallBack{
public void CallBackMethod();
}